簡體   English   中英

Python 3內置類型之間有什么關系?

[英]What is the relationship between Python 3 built-in types?

在python 3中,一切都是對象。 我畫了一個關於類關系的圖。 這個圖正確嗎?

在此處輸入圖片說明

困難的部分是關於類型和對象類的。 他們之間的關系如何? 類型是對象? 還是對象是類型?

>>> x=type
>>> type(x)
<class 'type'>
>>> x=object
>>> type(x)
<class 'type'>

據我所知,類關系在Python 3中有點像這樣:

  • 每個類都是object子類
  • 每個類都是一個type實例

每個類都是由type類或另一個從type派生的元類創建的。 因此,每個類都是type (包括type !)的實例。每個類將為isinstance(cls, type)返回True

在Python 3中,每個類也是object的子類。 每個類或實例將為isinstance(cls_or_instance, object)返回True

元類是一個特例。 一個元類是從type派生的,因此每個元類將為issubclass(metaclass, type)isinstance(metaclass, type)返回True

類型對象本身就是一個對象。 請注意,盡管python的繼承模型與其他OO語言不同,但它很大程度上取決於鴨子的類型而不是繼承。

請注意, type(x)返回對象的類型, type(object)返回<class 'type'>意味着object的類型(所有對象都具有的type )就是type (所有類型的類型是), type本身就是類型,所以它的類型又是type

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM