久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > python新式類和舊式類區(qū)別

python新式類和舊式類區(qū)別

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-11 15:15:06 1699686906

python的新式類是2.2版本引進(jìn)來(lái)的,我們可以將之前的類叫做經(jīng)典類或者舊式類。

為什么要在2.2中引進(jìn)newstyleclass呢?官方給的解釋是:

為了統(tǒng)一類(class)和類型(type)。

在2.2之前,比如2.1版本中,類和類型是不同的,如a是ClassA的一個(gè)實(shí)例,那么a.__class__返回‘class__main__.ClassA‘,type(a)返回總是。而引入新類后,比如ClassB是個(gè)新類,b是ClassB的實(shí)例,b.__class__和type(b)都是返回‘class'__main__.ClassB',這樣就統(tǒng)一了。

引入新類后,還有其他的好處,比如更多的內(nèi)置屬性將會(huì)引入,描述符的引入,屬性可以來(lái)計(jì)算等等。

為了向前兼容,默認(rèn)情況下用戶定義的類為經(jīng)典類,新類需要繼承自所有類的基類object或者繼承自object的新類。

值得注意的地方是,雖然使用的是最新的python(2.7),但是一些特性不會(huì)在舊式類起作用。

所以,為了確保自己使用的是新式類,有兩種以下方法:

1.元類,在類模塊代碼的最前面加入如下代碼__metaclass__=classname(自定義的某個(gè)新式類)。

2.類都從內(nèi)建類object直接或者間接地繼承。

如果不需要兼容舊式類,舊版本的類,那么就保持都是新式類。

在Python3里面,不存在這些問(wèn)題了,因?yàn)樗械念惗际莖bject類的子類(隱式)。

代碼示例:

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ū)別,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT