in __call__ return self.func(*args)
时间: 2024-09-06 07:08:24 浏览: 26
在Python中,`__call__` 方法使得实例对象可以像函数一样被调用。这意味着你可以定义一个类,然后创建这个类的实例,并且在调用这个实例时,实际上是调用了类中的 `__call__` 方法。
`return self.func(*args)` 这行代码表明在 `__call__` 方法内部,它在调用时会将接收到的所有参数 (`*args` 表示所有位置参数) 传递给 `self.func`。这里的 `self.func` 是一个实例方法,它属于当前类的实例,并且可能在类的其他地方定义。
使用 `__call__` 方法的好处很多,例如它允许对象以函数式编程风格使用,这可以增加代码的可读性和简洁性。它可以用于回调函数、实现设计模式中的单件模式、创建策略模式等。
下面是一个简单的示例代码:
```python
class Example:
def __init__(self, x):
self.x = x
def __call__(self, *args):
return self.func(*args)
def func(self, y):
return self.x + y
# 创建类的实例
example = Example(10)
# 通过实例调用,实际上是调用了__call__方法
result = example(5)
print(result) # 输出: 15
```
在这个例子中,`Example` 类有一个 `__call__` 方法,当实例 `example` 被调用时,它会将接收到的参数传递给 `self.func` 方法。