は、私が所望の出力を達成するための別の方法で興味がない私がこれまでメソッドオブジェクトの__call__メソッドをPythonでオーバーライドするにはどうすればよいですか?ここ
def f(n):
return n
f.__call__ = lambda n: n + 1
print f(2) #I expect an output of 3 but get an output of 2
で働いているものです。むしろ、教育的な目的のために、私が行ったように__call__
を上書きすることがなぜ私が期待するように機能しないのかを知りたいと思います。
@SethMMorton: 'dir(f)'を実行して、それらがあることを確認してください。 – Tadeck
関連:http://stackoverflow.com/questions/9707600/python-functions-the-the-call-attribute – Jared