def __call__
时间: 2023-07-03 15:29:55 浏览: 169
`__call__`是Python中的一个特殊方法,用于使类的实例像函数一样被调用。
当我们在一个类中定义了`__call__`方法时,该类的实例可以被像函数一样调用,就像这样:
```
class Adder:
def __init__(self, x):
self.x = x
def __call__(self, y):
return self.x + y
add5 = Adder(5)
print(add5(3)) # 输出: 8
```
在上面的例子中,我们定义了一个`Adder`类,它有一个`__call__`方法。我们创建了一个`Adder`实例`add5`,然后使用`add5(3)`的方式来调用它,就像调用一个函数一样。
`__call__`方法可以用于创建可调用的对象,这在某些情况下非常有用。例如,我们可以将一个类的实例作为参数传递给另一个函数,然后在函数内部调用该实例,就像这样:
```
def apply(func, x):
return func(x)
add5 = Adder(5)
result = apply(add5, 3)
print(result) # 输出: 8
```
在上面的例子中,我们定义了一个`apply`函数,它接受一个可调用对象`func`和一个参数`x`,然后调用`func(x)`并返回结果。我们创建了一个`Adder`实例`add5`,然后将它作为参数传递给`apply`函数,这样就可以在`apply`函数内部调用`add5`实例,将参数3加上5并返回结果8。
阅读全文