Python函数__setattr__和__getattr__

时间:2017-10-08 15:36:51

标签: python

此程序有效,但当我删除 getattr setattr 时,问题就出现了,找不到ID,名称。 为什么会发生这种情况,程序何时运行 setattr ?我使用了调试模式,但是它没有进入该功能。

感谢!!!

class E(dict):
    def __getattr__(self, key):
        try:
            return self[key]
        except KeyError:
            raise AttributeError(r"'Model' object has no attribute '%s'" % key)

    def __setattr__(self, key, value):
        self[key] = value

e = E(id='123', name='abc')
print(e.id)
print(e.name)

1 个答案:

答案 0 :(得分:-1)

dict 继承的每个对象必须实现__ getattr __ __和__ setattr __,__ setattr