实现一个闭包,实现mysum(1) =1, mysum(2)=3, mysum(3)=6
时间: 2023-10-08 17:13:19 浏览: 114
以下是实现闭包的Python代码:
```python
def mysum_closure():
sum = 0
def mysum(num):
nonlocal sum
sum += num
return sum
return mysum
# 测试闭包
mysum = mysum_closure()
print(mysum(1)) # 输出1
print(mysum(2)) # 输出3
print(mysum(3)) # 输出6
```
在这个实现中,我们定义了一个外部函数 `mysum_closure()`,它返回一个内部函数 `mysum()`。内部函数通过修改外部函数中的变量 `sum` 来保持计数器的状态。每次调用内部函数时,它都会将传入的参数加到计数器上,并返回当前的计数器值。
使用闭包,我们可以实现一个类似于类的实例的效果,但是比类更轻巧和灵活。
阅读全文