def bibao():
li = []
n = [1]
def inner():
li.append(n[0])
n[0] +=1
print(li)
return inner
b = bibao()
b()
b()
结果分别为[1]和[1,2]
简述
内部函数被当做对象返回时,夹带了这个内部函数之外的自由变量
闭包:带着当前变量环境的函数
b是inner函数,具有当前变量的值,li是一个空列表,n=[1]
b(),当b被调用时,li.append(1),n=[2],li=[1],这些变量都被存储在了__closure__[0]中
原文:https://www.cnblogs.com/taomin/p/10366793.html