python 利用闭包返回一个计数器函数,每次调用它返回递增整数:

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✔

你可能感兴趣的:(python 利用闭包返回一个计数器函数,每次调用它返回递增整数:)