__init__と__call__ってどう違うのかなと思ったけどわかった。

class Foo:
def __init__(self):
print 'init'

def __call__(self):
print 'call'

Foo()()
init
call

__init__はクラスがインスタンス化される時に呼ばれて、__call__はインスタンスが呼ばれた時に動くんですね。

この間書いた、RubyのFoo()とか使ってると混乱するわ!

関連:Ruby - クラス名と同名の関数にデフォルト動作をさせるパターン - p0t

Comments


Option