python新式類和舊式類區(qū)別
python的新式類是2.2版本引進來的,我們可以將之前的類叫做經(jīng)典類或者舊式類。
為什么要在2.2中引進newstyleclass呢?官方給的解釋是:
為了統(tǒng)一類(class)和類型(type)。
在2.2之前,比如2.1版本中,類和類型是不同的,如a是ClassA的一個實例,那么a.__class__返回‘class__main__.ClassA‘,type(a)返回總是。而引入新類后,比如ClassB是個新類,b是ClassB的實例,b.__class__和type(b)都是返回‘class'__main__.ClassB',這樣就統(tǒng)一了。
引入新類后,還有其他的好處,比如更多的內(nèi)置屬性將會引入,描述符的引入,屬性可以來計算等等。
為了向前兼容,默認情況下用戶定義的類為經(jīng)典類,新類需要繼承自所有類的基類object或者繼承自object的新類。
值得注意的地方是,雖然使用的是最新的python(2.7),但是一些特性不會在舊式類起作用。
所以,為了確保自己使用的是新式類,有兩種以下方法:
1.元類,在類模塊代碼的最前面加入如下代碼__metaclass__=classname(自定義的某個新式類)。
2.類都從內(nèi)建類object直接或者間接地繼承。
如果不需要兼容舊式類,舊版本的類,那么就保持都是新式類。
在Python3里面,不存在這些問題了,因為所有的類都是object類的子類(隱式)。
代碼示例:
classoldClass:#經(jīng)典類
def__init__(self):
pass
classnewClass(object):#新類
def__init__(self):
pass
c1=oldClass()
c2=newClass()
c1.__class__#輸出->
type(c1)#輸出->
c2.__class__#輸出->
type(c2)#輸出->
以上內(nèi)容為大家介紹了python培訓(xùn)之新式類和舊式類區(qū)別,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
pythonfor循環(huán)是什么
pythonfor循環(huán)是什么在做遍歷的時候,對于一些數(shù)據(jù)的反復(fù)循環(huán)執(zhí)行,我們會用到for循環(huán)的語句。可以說這是新手入門必學(xué)的語句之一,在很多基礎(chǔ)循...詳情>>
2023-11-13 07:46:36
pythoncontextmanager()的轉(zhuǎn)換
python中contextmanager()的轉(zhuǎn)換1、說明當(dāng)發(fā)出請求時,requests庫會在將請求實際發(fā)送到目標服務(wù)器之前準備該請求。請求準備包括像驗證頭信息和...詳情>>
2023-11-13 06:34:35
python使用items()遍歷鍵值對
python使用items()遍歷鍵值對字典可以用來存儲各種方式的信息,所以有很多方式可以通過字典的所有鍵值對、鍵或值。說明1、即使通過字典,鍵值對...詳情>>
2023-11-13 04:24:15
python實例方法中self的作用
python實例方法中self的作用說明1、無論是創(chuàng)建類的構(gòu)造方法還是實例方法,最少要包含一個參數(shù)self。2、通過實例的self參數(shù)與對象進行綁定,程序...詳情>>
2023-11-13 03:46:48熱門推薦
python實現(xiàn)WSGI的框架
沸pythonfor循環(huán)是什么
熱python-=是什么意思
熱python打開文本文件有哪些方法?
新pythoncontextmanager()的轉(zhuǎn)換
pythonre是什么?
pythondecimal是什么
python列表追加元素出錯的解決
python使用loguru操作日志
python使用items()遍歷鍵值對
pythonvim中有哪些對象
python實例方法中self的作用
pythonin和is的區(qū)分
pythonos.path.join()函數(shù)的使用
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線