直接上例子:
class MyClass:
def __init__(self, value):
self.value = value
print(f"初始化对象,值为: {value}")
def __call__(self, increment):
self.value += increment
print(f"调用对象,增加 {increment} 后的值为: {self.value}")
obj = MyClass(10)
obj(5)
obj(3)
看结果:
详解:
我们看到终端,obj=MyClass(10)会调用__init__方法(默认),输出相关内容
总结:
a=b(x)这种实例化调用的方式会默认init
而a(x)这种面向对象调用方式会默认call