刚开始学习python,我遇到了__call__
方法。我通过运行一个简单的示例了解何时__init__
被调用以及何时被调用:__call__
class Constructor:
def __init__(self, a):
print "__init__ called"
def __call__(self):
print "__call__ called"
def dummy(self):
print "a dummy method called"
print "creating x obj"
x = Constructor(1)
print "calling x object"
x()
控制台输出:
creating x obj
__init__ called
calling x object
__call__ called
我的问题是:
- 我来自java背景,我知道
__init__
映射到java构造函数,java是否有一个等价物__call__
来帮助我更好地理解这一点? - 有人可以给我一个简单的例子,说明什么时候
__call__
有用吗?