python 3.7 练习
利用闭包返回一个计数器函数,每次调用它返回递增整数:
def create_counter():
i = [0]
def counter():
i[0] += 1
return i[0]
return counter
# 测试:
counterA = create_counter()
print(counterA(), counterA(), counterA(), counterA(), counterA()) # 1 2 3 4 5
counterB = create_counter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
print('测试通过!')
else:
print('测试失败!')
由counterA = create_counter()
可知 counterA实际上是counter()
所以i
只会被初始化一次,以后每次调用counterA()
实际上i[0]
的值一直在改变并不是初始化时候的0
了
get✔