python中__init__和__call__之间有什么区别?

问题:

我想知道__init____call__方法之间的区别。
例如:

class test:

  def __init__(self):
    self.a = 10

  def __call__(self): 
    b = 20

回答:

第一个用于初始化新创建的对象,并接收用于执行此操作的参数:

class foo:
    def __init__(self, a, b, c):
        # ...

x = foo(1, 2, 3) # __init__

第二个实现函数调用运算符。

class foo:
    def __call__(self, a, b, c):
        # ...

x = foo()
x(1, 2, 3) # __call__

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: what is difference between __init__ and __call__ in python?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 9 = 1