__getattr__ 方法的等效实现
当找不到某个属性时,会调用 object.__getattr__
这个方法。那么,有没有类似的方法可以用来拦截那些未定义的方法呢?
3 个回答
0
你没有返回任何东西。
class A(object):
def __getattr__(self, attr):
return attr
应该可以正常工作。
12
其实没有什么区别。方法也是一种属性。不过,如果你想让这个方法自动带上一个“self”参数,那你就需要做一些额外的工作来“绑定”这个方法。
10
方法也是属性的一种。__getattr__
对它们的作用是一样的:
class A(object):
def __getattr__(self, attr):
print attr
然后试试:
>>> a = A()
>>> a.thing
thing
>>> a.thing()
thing
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable