• 技术文章 >Python技术 >Python基础教程

    Python描述器中__getattribute__调用

    小妮浅浅小妮浅浅2021-05-26 09:26:04原创2408

    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)
        if hasattr(v, '__get__'):
            return v.__get__(self)
        return v

    重写 __getattribute__() 会阻止描述器的自动调用。

    以上就是Python描述器中__getattribute__调用,希望对大家有所帮助。更多Python学习推荐:python教学

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python描述器 __getattribute__
    上一篇:Python中__slots__的禁用实例 下一篇:Python函数调用跟踪装饰器

    相关文章推荐

    • Python魔法方法之__getattr__和getattribute• python中getattribute方法作用是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网