Python中__call__ 方法
__call __ 方法是一个特殊方法,在Python中,如果一个对象实现了这个方法,那么这个对象就可以被调用,就像函数一样。当你调用一个对象时,实际上是调用了该对象的 __call __ 方法。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print("Woof!")
def __call__(self, target):
print(f"{self.name} barks at {target}!")
# 实例化一只狗
my_dog = Dog(name="Buddy", age=3)
# 直接调用实例
my_dog("the mailman")
当像函数一样调用这个对象时,实际上会调用这个 call 方法:
//输出结果
Buddy barks at the mailman!