真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python新式類和舊式類的區(qū)別是什么

這篇文章主要介紹python新式類和舊式類的區(qū)別是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)柴桑,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

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

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

為了統(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)置屬性將會引入,描述符的引入,屬性可以來計(jì)算等等。

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

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

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

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

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

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

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

代碼示例:

class oldClass:            #經(jīng)典類
    def __init__( self ):
        pass
  
class newClass(object):    #新類
    def __init__( self ):
        pass 
  
c1 = oldClass()
c2 = newClass()
  
c1.__class__            # 輸出-> 
type(c1)                # 輸出-> 
  
c2.__class__            # 輸出->
type(c2)                # 輸出->

以上是python新式類和舊式類的區(qū)別是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


名稱欄目:python新式類和舊式類的區(qū)別是什么
文章位置:http://weahome.cn/article/ipjhep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部