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)魔法方法、

 

猜你喜欢

转载自www.cnblogs.com/z-qinfeng/p/11986564.html