__call__ 和 __init__半毛钱的关系都没有。
后者是构造类的实例时会调用的方法,并不是构造方法。
前者是在实例上可以呼叫的方法。代码示例如下:
>>> class foo: def __init__(self): print "init" def __call__(self): print "call"
>>> foo() init <__main__.foo instance at 0x0000000002C6EC88> >>> foo()() init call
原文:http://www.cnblogs.com/Tommy-Yu/p/4106931.html