__call__方法是python的内置方法之一,在类中使用这个内置方法就可以让该类的实例化对象以一个函数的形式运行。
NB(注意): # 后面的部分表示输出结果
代码如下:

class Example:
def __init__(self):
print("Instance Created")

# definf __call__ method
def __call__(self):
print("Instance is called via special method")


# Instance created
main = Example() # Instance Created

# __call__ method will be called
main() # Instance is called via special method

机制:​​__init__方法的运行机制​​​这里不做过多讨论,当我们创建完成​​Example​​​类的对象​​main​​​后,当我们在实例对象​​main​​​后面加上括号让它表示为一个函数时,此时便会自动调用内置的​​__call__​​​方法,从而使得实例化对象​​main()​​​可以以一个函数的形式被运行,当然在此过程中我们还可以传递我们想要传递的参数。
代码如下:

class Add: 
def __init__(self):
print("Instance Created")

# Defining __call__ method
def __call__(self, a, b):
print(a + b)

# Instance created
main = Add()

# __call__ method will be called
main(10, 20) # 30

上述的​​__call__​​方法实现了求两个数和的功能。