python新式類(lèi)是什么
1、說(shuō)明
python3.x的所有類(lèi)都會(huì)自動(dòng)轉(zhuǎn)換為一個(gè)新式類(lèi),不論是否有繼承object對(duì)象。
python2.x必須顯式地指定類(lèi)繼承object父類(lèi)才表示新式類(lèi)。
2、實(shí)例
#newstyle.py,python環(huán)境為2.xclassClassic:
"""
python2.x默認(rèn)類(lèi)為經(jīng)典類(lèi)
由于__getatt__與__getattribute__功能效果一樣,這里只用__getattr__演示
"""
def__getattr__(self,method_name):
print("callClassic__getattr__,itwouldcallbuilt-in[%s]method"%method_name)returngetattr(self.__name,method_name)classNewStyleClass(object):def__init__(self):
self.__name="newstylename"
"""
python2.x需要指明為新式類(lèi),python3.x默認(rèn)為新式類(lèi)
"""
def__getattr__(self,item):
print("callNewStyle__getattr__,itwouldcallbuilt-in[%s]method"%item)returngetattr(self.__name,item)deftest_dir():
C=Classic()
N=NewStyleClass()
print(dir(C)#經(jīng)典類(lèi)內(nèi)置有__getattr__方法
print(dir(N)#新式類(lèi)的內(nèi)置方法繼承object對(duì)象>>>pythonnewstyle.py
以上就是python新式類(lèi)的介紹,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。