python 中type和object的關係

學習python的同窗都知道這麼幾句話python

  • object類是全部新式類的父類。學習

  • type是全部類的類。spa

那麼type和object是什麼關係呢?
object是一個新式類,咱們能夠經過object.__class__object.__bases__來獲取object所屬的類核他的父類。code

>>> object.__class__
<type 'type'>

這說明 object類是一個type元類的實例。這與type是全部新式類的類這一說法相符合。blog

>>> object.__bases__
()

這說明 object類已經處於繼承鏈條的頂端,是全部類的父類。繼承

>>> type.__class__
<type 'type'>

這說明type自身的類就是type。就是說type元類也就是由type自身建立的。圖片

>>> type.__base__
<type 'object'>

這就是說type這一元類的父類是object。it

咱們來捋一捋,也就是說:
object類是由元類type建立的,可是type類又繼承了object類。 type元類的類則是由type元類自身建立的。class

咱們把python中的內置類和用戶建立的內歸入其中,咱們就能夠畫出一下關係圖
圖片描述object

簡單說明一下出了type和object關係的其餘部分。
int、float、str、boolean、tuple、dict、set等內置的數據類型其實也就是內置的類。
type是一個比較特殊的類,他是全部類的類。因此估計要與int等這種類保持一致,因此也是小寫的?

咱們平常在程序中建立的具體的整數, 浮點數、字典、元祖等就是上面int、float、boolean等的實例。

咱們寫代碼的建立的自定義類分兩種,一種是新式類,一種是經典類。
新式類的類都是type,它的最終父類是object。
經典類的建立者,也是是經典類的類是一個叫classobj的東西,classobj的類纔是type。

以上文字僅基於本身的理解。有錯誤還請指正。

相關文章
相關標籤/搜索