在 Python 类中,`__call__` 是一个特殊方法(special method),用于使实例对象能够像函数一样被调用。当调用一个类的实例时,解释器会查找并调用该实例的 `__call__` 方法。
在类中定义了 `__call__` 方法后,可以通过直接在实例后面加括号的方式调用该实例,就像调用一个函数一样。调用实例时,实际上是调用了 `__call__` 方法,并传递相应的参数。
下面是一个示例,展示了一个类中的 `__call__` 方法的使用:
class MyClass:
def __call__(self, *args, **kwargs):
print("Calling MyClass instance")
# 创建类的实例
my_obj = MyClass()
# 调用实例,实际上调用了 __call__ 方法
my_obj() # 输出:Calling MyClass instance
通过在类中定义 `__call__` 方法,可以使类的实例具有可调用的行为,使其在使用上更像一个函数。这在某些情况下可以带来便利,例如将实例用作装饰器或回调函数等。