python對(duì)象屬性的查找順序
1、查找順序
(1)類和父類字典的數(shù)據(jù)描述器
(2)實(shí)例字典
(3)類和父類字典中的非數(shù)據(jù)描述器
無論類有多少個(gè)繼承級(jí)別,該類對(duì)象的實(shí)例字典總是存儲(chǔ)了所有的實(shí)例變量,這也是super的意義之一。
2、實(shí)例
defget_attribute(obj,name):
class_definition=obj.__class__
descriptor=None
forclsinclass_definition.mro():
ifnameincls.__dict__:
descriptor=cls.__dict__[name]
break
ifhasattr(descriptor,'__set__'):
returndescriptor,'datadescriptor'
ifnameinobj.__dict__:
returnobj.__dict__[name],'instanceattribute'
ifdescriptorisnotNone:
returndescriptor,'non-datadescriptor'
else:
raiseAttributeError
以上就是Python對(duì)象屬性的查找順序,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)推薦:請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。