python类对象属性查找原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python类对象属性查找原理相关的知识,希望对你有一定的参考价值。

class Foo(object):
    def __init__(self):
        # 这是一个对象属性
        self.obj_pro = 12

    # 这是一类属性
    c_pro = 11
    
    # 这是一个静态方法
    @classmethod
    def c_method(self):
        print(c_method)


if __name__ == __main__:
    f = Foo()
    """
     如何查找对象属性?
     就是在对象的__dict__字典去找,对象__dict__找不到,再去类__dict__里面找
    """
    print(f.__dict__)  # {‘obj_pro‘: 12}
    
    """
        类属性是在类的__dict__字典里面找的
    """
    print(Foo.__dict__)   

 

 如果还是找不到,就会调用getattr(self,item)魔法方法、

 

以上是关于python类对象属性查找原理的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

Python -- 面向对象:类空间问题以及类之间的关系

python之路之前没搞明白4面向对象(封装)

python-属性的查找与绑定方法

python:属性查找与绑定方法

在 Python 中,为啥属性优先于实例属性?