9. __call__方法

__call__ 是一个特殊方法,它允许一个类的对象(也叫实例)像函数一样被调用。

当一个类实现了 __call__ 方法后,该类的对象就成为了可调用对象,可以通过对象名() 的方式调用该方法,而实际上执行的是 __call__ 方法中的代码。

示例

class NumberAdder:
    def __init__(self, start=0):
        self.value = start
    def __call__(self, a_number):
        self.value += a_number

adder = NumberAdder(0)
adder.__call__(100)
adder.__call__(200)
adder(300)
print(adder.value)

上述示例中,adder 是对象,但它可以像函数一样调用,并能够返回值(尽管此示例返回None)。