python描述器中__getattribute__調(diào)用
1、說明
在Python中一切皆對象,所有對象都有一個默認(rèn)的方法__getattribute__(self,name)。
該方法會在我們使用.訪問obj的屬性時會自動調(diào)用,為了防止遞歸調(diào)用,它總是實(shí)現(xiàn)為從基類object中獲取object.__getattribute__(self,name),該方法大部分情況下會默認(rèn)從self的__dict__字典中查找name(除了特殊方法的查找)。
2、實(shí)例
描述器正是由__getattribute__()方法調(diào)用,其大致邏輯為:
def__getattribute__(self,key):
v=object.__getattribute__(self,key)
ifhasattr(v,'__get__'):
returnv.__get__(self)
returnv
重寫__getattribute__()會阻止描述器的自動調(diào)用。
以上就是Python描述器中__getattribute__調(diào)用,希望對大家有所幫助。更多Python學(xué)習(xí)推薦:請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。