通常情况下,函数和方法可以被调用,但普通的类实例不能直接像函数一样被调用。不过,当一个类定义了 __call__ 方法后,该类的实例就可以像函数一样被调用,调用实例时实际上就是在调用这个 __call__ 方法。
class Adder:
def __init__(self, num):
self.num = num

def __call__(self, x):
return self.num + x

# 创建 Adder 类的实例
add_five = Adder(5)

# 像调用函数一样调用实例
result = add_five(3)
print(result) # 输出: 8