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