Python基础 | 魔术方法__getattr__()例子

定义一个 Counter 类,重写魔法方法,实现属性个数的统计。

提示:通过实例对象访问__dict__属性可以返回一个字典,字典的键为属性名,值为属性值。

class Counter:
    def __getattr__(self,name):
        if name == 'counter':
            print("属性个数为%d个" % len(self.__dict__))
        else:
            super().__getattr__(name)#去上级找

c = Counter()
c.name = "Tom"
c.age = 12
c.sex = "男"
c.counter