Python中__call__属性的使用指南详细解析
__call__
方法是 Python 中的一个魔术方法,它允许一个类的实例像函数那样被调用。当你尝试调用一个对象时,如果这个对象定义了 __call__
方法,Python 就会调用这个方法。
使用 __call__
方法的一个常见场景是创建装饰器。装饰器是 Python 中用于函数或方法调用的前后执行某些操作的工具。
下面是一个简单的 __call__
方法的使用示例:
class Greeter:
def __init__(self, greeting):
self.greeting = greeting
def __call__(self, *args, **kwargs):
print(f"{self.greeting}, {args[0]}!")
# 创建一个 Greeter 实例
hello = Greeter("Hello")
# 调用实例就像调用函数一样
hello("world") # 输出: Hello, world!
在这个例子中,Greeter
类定义了 __call__
方法,使得 Greeter
的实例可以接受参数并打印问候语。当我们调用 hello("world")
时,实际上是在调用 hello
对象的 __call__
方法。
评论已关闭