type、class、object的關(guān)系

1. python中一切皆對(duì)象:

其中函數(shù)和類也是對(duì)象,具體體現(xiàn)為:

  • 可以賦值給一個(gè)變量
  • 可以添加到集合對(duì)象中,如可以添加到列表中
  • 可以作為參數(shù)傳入函數(shù)
  • 可以作為函數(shù)的返回值

2. type class boject

a = 1
type(1)    #結(jié)果為class int
type(int)  #結(jié)果為class type

type 有兩個(gè)作用:一是返回對(duì)象的類型;二是實(shí)例化一個(gè)類對(duì)象。
上例中:type作為一個(gè)類,通過(guò)實(shí)例化產(chǎn)生一個(gè)新的類int或者說(shuō)實(shí)例化產(chǎn)生一個(gè)class類型的對(duì)象int,int作為一個(gè)類,通過(guò)實(shí)例化產(chǎn)生一個(gè)對(duì)象1, 1這個(gè)對(duì)象賦值給變量a。因此平常所使用的類是由type這個(gè)類生成的一個(gè)對(duì)象。
object是所有類中最頂層(最基礎(chǔ)的類)

image.png

  • 從上圖中可以看出type的父類是object,即object是一個(gè)類,且是type的父類。
  • object的父類為空,說(shuō)明object是所有類中最基礎(chǔ)的類。
  • object作為一個(gè)對(duì)象,是由type這個(gè)類實(shí)例化產(chǎn)生的

總結(jié)如下:

image.png

以list為例。第一,list是type實(shí)例化產(chǎn)生的一個(gè)對(duì)象(故type(list)返回結(jié)果為type),因此list是一個(gè)對(duì)象;
第二,list是繼承自object這個(gè)基礎(chǔ)類的,因此list是一個(gè)類(list._bases_返回結(jié)果為objecct)
綜上,list既是一個(gè)類,也是一個(gè)對(duì)象,因此python中類也是對(duì)象。
同樣的,type可以實(shí)例化自己,也可以實(shí)例化object,同時(shí)繼承自object
object是最基礎(chǔ)的類,是由type實(shí)例化得到的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容