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学习推荐:python教学
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)