__getattr__为内置方法,当使用点号获取实例属性时,如果属性不存在就自动调用__getattr__方法
__setattr__当设置类实例属性时自动调用,如j.name=5 就会调用__setattr__方法 self.[name]=5
因为这个类是从dict继承来的,是dict的超类
例子:
class p():s = 2def __getattr__(self, item):return "hello"
d = p()
print(d.s)
print(d.p)
输出:
2
hello