将函数作为返回值的函数,在调用时相关参数和变量保存在返回的函数中,这种称为闭包。
#计数器
def createCounter(x=0):
nn = [x]
def counter():
nn[0] += 1
return nn[0]
return counter
count = createCounter(7)
print(count(), count(), count(), count()) -------> (8, 9, 10, 11)
定义count时还没有计算nn[0]的值,count指向counter()方法,计算count()时才会执行nn[0] += 1.