摘要:這說(shuō)明類已經(jīng)處于繼承鏈條的頂端,是所有類的父類。這就是說(shuō)這一元類的父類是。我們來(lái)捋一捋,也就是說(shuō)類是由元類創(chuàng)建的,但是類又繼承了類。元類的類則是由元類自身創(chuàng)建的。
學(xué)習(xí)python的同學(xué)都知道這么幾句話
object類是所有新式類的父類。
type是所有類的類。
那么type和object是什么關(guān)系呢?
object是一個(gè)新式類,我們可以通過(guò)object.__class__和object.__bases__來(lái)獲取object所屬的類核他的父類。
>>> object.__class__
這說(shuō)明 object類是一個(gè)type元類的實(shí)例。這與type是所有新式類的類這一說(shuō)法相符合。
>>> object.__bases__ ()
這說(shuō)明 object類已經(jīng)處于繼承鏈條的頂端,是所有類的父類。
>>> type.__class__
這說(shuō)明type自身的類就是type。就是說(shuō)type元類也就是由type自身創(chuàng)建的。
>>> type.__base__
這就是說(shuō)type這一元類的父類是object。
我們來(lái)捋一捋,也就是說(shuō):
object類是由元類type創(chuàng)建的,但是type類又繼承了object類。 type元類的類則是由type元類自身創(chuàng)建的。
我們把python中的內(nèi)置類和用戶創(chuàng)建的內(nèi)納入其中,我們就可以畫(huà)出一下關(guān)系圖
簡(jiǎn)單說(shuō)明一下出了type和object關(guān)系的其他部分。
int、float、str、boolean、tuple、dict、set等內(nèi)置的數(shù)據(jù)類型其實(shí)也就是內(nèi)置的類。
type是一個(gè)比較特殊的類,他是所有類的類。所以估計(jì)要與int等這種類保持一致,所以也是小寫(xiě)的?
我們?nèi)粘T诔绦蛑袆?chuàng)建的具體的整數(shù), 浮點(diǎn)數(shù)、字典、元祖等就是上面int、float、boolean等的實(shí)例。
我們寫(xiě)代碼的創(chuàng)建的自定義類分兩種,一種是新式類,一種是經(jīng)典類。
新式類的類都是type,它的最終父類是object。
經(jīng)典類的創(chuàng)建者,也是是經(jīng)典類的類是一個(gè)叫classobj的東西,classobj的類才是type。
以上文字僅基于自己的理解。有錯(cuò)誤還請(qǐng)指正。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38567.html
摘要:好吧,事實(shí)上,類本身也是實(shí)例,當(dāng)然,它們是元類的實(shí)例。中的一切都是對(duì)象,它們要么是類的實(shí)例,要么是元類的實(shí)例,除了。 寫(xiě)在最前面 一些很重要的知識(shí),我的寫(xiě)得有點(diǎn)亂,也可以去看這些文章 Python 面向?qū)ο螅ǔ跫?jí)篇) Python 面向?qū)ο螅ㄟM(jìn)階篇) 深刻理解Python中的元類(metaclass) 首先來(lái)看一個(gè)例子,正常情況下我們定義并且實(shí)例一個(gè)類如下 class Foo(ob...
摘要:,可以對(duì)對(duì)象進(jìn)行自動(dòng)地回收。如下,這種情況的發(fā)生表示隨改變了,應(yīng)該意識(shí)到這個(gè)問(wèn)題。代表引用相同則返回,否則,返回。這個(gè)判斷會(huì)更加嚴(yán)格。的值為的兩個(gè)量,其必定也是。,和指向了不同的。,由于會(huì)存儲(chǔ)一些小的和小的以方便重新利用。 1, 在Python中,類型永遠(yuǎn)跟隨object,而非variable。Variable沒(méi)有類型。 2,在下面的三個(gè)式子中,a首先被賦予整形3,再被賦予字符串‘sp...
摘要:如果還是沒(méi)有找到,就會(huì)使用父類中的元類來(lái)創(chuàng)建類。元類通常用于處理比較復(fù)雜的情況。這是因?yàn)槭褂昧嗽悾鼤?huì)將中定義的字段轉(zhuǎn)換成數(shù)據(jù)庫(kù)中的字段。中所有數(shù)據(jù)類型都是對(duì)象,它們要么是類的實(shí)例要么是元類的實(shí)例。 原文地址:what is metaclass in Python?我的簡(jiǎn)書(shū)地址::nummy 類即對(duì)象 在理解元類之前,需要先掌握Python中的類,Python中類的概念與SmallT...
摘要:實(shí)例變量與類變量事實(shí)上,字段除了獨(dú)屬于實(shí)例之外,跟普通變量沒(méi)有什么差別,所以實(shí)例的字段也被稱為實(shí)例變量。在類的定義中,與實(shí)例變量對(duì)應(yīng)的還有類變量,類變量與實(shí)例變量類似,通過(guò)操作符來(lái)訪問(wèn)。類變量跟類的方法都可以被稱為類的成員。 該系列文章: 《python入門(mén),編程基礎(chǔ)概念介紹(變量,條件,函數(shù),循環(huán))》 《python中的數(shù)據(jù)類型(list,tuple,dict,set,None)》...
摘要:起步的提供一系列和屬性訪問(wèn)有關(guān)的特殊方法。本文闡述它們的區(qū)別和用法。屬性的訪問(wèn)機(jī)制一般情況下,屬性訪問(wèn)的默認(rèn)行為是從對(duì)象的字典中獲取,并當(dāng)獲取不到時(shí)會(huì)沿著一定的查找鏈進(jìn)行查找。則這個(gè)類的對(duì)象稱為描述符。 起步 python的提供一系列和屬性訪問(wèn)有關(guān)的特殊方法:__get__, __getattr__, __getattribute__, __getitem__ 。本文闡述它們的區(qū)別和用...
閱讀 2006·2021-09-22 16:05
閱讀 9310·2021-09-22 15:03
閱讀 2885·2019-08-30 15:53
閱讀 1702·2019-08-29 11:15
閱讀 911·2019-08-26 13:52
閱讀 2353·2019-08-26 11:32
閱讀 1806·2019-08-26 10:38
閱讀 2567·2019-08-23 17:19