我已经浏览了网页和pydoc,以找到我的答案,但没有成功。我的问题如下:class Container(object): assert isinstance(content, dict), "The container can only contain a dictionary" def name():
我还试图覆盖那个新类的__getattr__,这样我就可以在新类之外的属性上执行我自己的行为。例如,我有foo类,我添加了"tool“类,我想让foo.tool.test做一些我自己的事情。如果我显式地调用__getattr__,它就可以工作(参见第一个打印),但是当我引用foo.tool.test时,我被覆盖的__getattr__不会被调用,并且会引发一个属性错误。new class to ourself
__getattribute__(a) print ("Calling the second one (AttributeError现在,如果我这样做: i=Item()
i.x 它将命中__getattribute__中的AttributeError并回退到__getattr__。有这样的后备有什么意义呢?定义__getattr__ / __getattribute__对的合法用例是什么?