python 中type和object的關係

2022-03-15 10:50:58 字數 1092 閱讀 2616

**:

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

那麼type和object是什麼關係呢?

object是乙個新式類,我們可以通過object.__class__object.__bases__來獲取object所屬的類核他的父類。

>>> object.__class__

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

>>> object.__bases__

()

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

>>> type.__class__

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

>>> type.__base__

這就是說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。

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

python中type和isinstance的使用

a1 1,2 print type a1 class a 建立乙個空類 pass 代表空行,讓編譯器不報錯 a a 建立乙個物件 print type a class b a 建立乙個類b,繼承自類a pass 空行,沒有實際意義,僅僅讓編譯器不報錯 b b 建立乙個類b的物件 print type...

Python中type和isinstance的區別

在python中,我們經常通過type和isinstance來判斷某個物件的型別,下面我們通過乙個簡單的例子來分析2個方法的區別 class animal object def init self,name self.name name class dog animal def init self,...

python中的type 函式

type 是乙個內建函式,可以很方便地查詢物件資料型別 主要有兩種用法 乙個引數和三個引數 1 只使用乙個引數 print type 1 輸出 print typr str 輸出2 使用三個引數 classx object a 1x type x object,dict a 1 產生乙個新的型別 x...