我使用的是python2.7.2。我想了解调用函数和调用函数的__call__
属性之间的关系。例如,考虑下面的代码
def foo():
return 5
print foo() # ==> 5
print foo.__call__() # ==> 5
foo.__call__ = lambda : 6
print foo() # ==> 5
print foo.__call__() # ==> 6
前四行似乎表明调用函数foo
与调用foo
的__call__
属性相同。然而,最后三行似乎表明它们是不同的野兽,因为我更改了__call__
属性,但它没有更改调用foo()
返回的值。在
有人能解释一下调用foo()
和调用foo.__call__()
之间的关系吗?有没有办法修改函数的行为,使foo()
和{
我建议你阅读special method lookup for new-style classes(尤其是最后一段)。在
相关问题 更多 >
编程相关推荐