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培训机构:千锋教育。