#利用闭包返回一个计数器函数,每次调用它返回递增整数:
#闭包即为外函数return内函数,调用外函数每次都只返回内函数而不会直接运算内函数结果。
#内外函数变量调用的时候一定要注意全局变量和局部变量的概念。
def createCounter():
n=0
def counter():
nonlocal n
n+=1
return n
return counter
# 测试:
counterA = createCounter()
print(counterA(), counterA(), counterA(), counterA(), counterA()) # 1 2 3 4 5
counterB = createCounter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
print('测试通过!')
else:
print('测试失败!')
Sign in to make a reply
夜間急行列車4番線
#利用闭包返回一个计数器函数,每次调用它返回递增整数:
#闭包即为外函数return内函数,调用外函数每次都只返回内函数而不会直接运算内函数结果。
#内外函数变量调用的时候一定要注意全局变量和局部变量的概念。
def createCounter():
n=0
def counter():
nonlocal n
n+=1
return n
return counter
# 测试:
counterA = createCounter()
print(counterA(), counterA(), counterA(), counterA(), counterA()) # 1 2 3 4 5
counterB = createCounter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
print('测试通过!')
else:
print('测试失败!')