インスタンス生成がnew無しで関数呼び出しのようにできる、というのもあって、呼び出す部分についてはクロージャのようにしか見えない。 >>> class Klass(object): ... def __init__(self, a): ... self.a = a ... def __call__(self, n): ... return n + self.a ... >>> >>> k = Klass(10) >>> k(20) 30 ところでこのコードを入力していたのは、対話形式で立ち上げていたPythonなのだけれど、途中で__call__の中身を間違えてしまい、そのままもう一度class宣言し直したら動いた。 ・・・あれ?二重宣言でエラーじゃないの? これも気になるナー。