如何实现add(1)(2)累加的
时间: 2024-01-01 11:04:38 浏览: 31
我们可以通过定义一个函数,返回一个带有 `__call__` 方法的类的实例,然后在这个实例中实现累加操作。具体实现如下:
```python
class Adder:
def __init__(self):
self.total = 0
def __call__(self, num):
self.total += num
return self
def __repr__(self):
return str(self.total)
def add(num):
adder = Adder()
return adder(num)
```
在上面的代码中,我们首先定义了一个名为 `Adder` 的类,它有一个属性 `total` 用于记录累加的结果。在初始化时,我们将 `total` 属性初始化为 0。然后,我们定义了一个带有 `__call__` 方法的类的实例,这个实例可以像函数一样被调用。在这个实例中,我们实现了累加操作。每次调用它时,它会将传入的 `num` 值加到 `total` 属性上,并返回实例本身。我们还定义了一个 `__repr__` 方法来返回累加的结果。
最后,我们定义了一个 `add` 函数,它返回一个 `Adder` 实例并调用它。这样,我们就可以通过连续调用这个函数来实现连续累加的操作。
使用示例:
```python
print(add(1)(2)(3)(4)) # 输出 10
```
在上面的示例中,我们首先调用 `add` 函数,并连续调用它的返回值来实现连续累加的操作。最终,我们得到了累加的结果:1+2+3+4=10。