接受任何属性的类

时间:2012-08-23 06:19:32

标签: python

是否可以定义一个python类,如果在类实例中调用了某个属性但该属性不存在,则该类不返回AttributeError异常?像

class A():
    pass

a = A()
a.tutu <==not raising AttributeError

感谢

1 个答案:

答案 0 :(得分:3)

您可以在班级上定义__getattr__方法。请参阅the documentation

这是一个简单的示例,它为所有缺少的属性赋予值“Default”:

>>> class Foo(object):
...     def __getattr__(self, attr):
...         return "Default"
>>> f = Foo()
>>> f.someJunk
'Default'