python 中type和object的關系

分類:IT技術 時間:2017-04-04

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

  • object類是所有新式類的父類。

  • type是所有類的類。

那麽type和object是什麽關系呢?
object是一個新式類,我們可以通過object.__class__object.__bases__來獲取object所屬的類核他的父類。

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

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

>>> object.__bases__
()

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

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

這說明type自身的類就是type。就是說type元類也就是由type自身創建的。

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

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

我們來捋一捋,也就是說:
object類是由元類type創建的,但是type類又繼承了object類。 type元類的類則是由type元類自身創建的。

我們把python中的內置類和用戶創建的內納入其中,我們就可以畫出一下關系圖

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

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

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

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


Tags: python 程序 經典 用戶

文章來源:


ads
ads

相關文章
ads

相關文章

ad