python闭包引用局部变量的方法


def foo(): 
	a = [1]#定义为容器就可以了
	def bar(): 
		a[0] = a[0] + 1
 		return a[0] 
	return bar



在python3.5中可以使用nonlocal 来访问局部变量
def x():
	yy=0
	def y(): 
		# x=x+1
		nonlocal yy
		yy=yy+1
		return yy
	return y

aa=x()
print(aa())
print(aa())
print(aa())
print(aa())
print(aa())
print(aa())
print(aa())
print(aa())
print(aa())
print(aa())


你可能感兴趣的:(python闭包引用局部变量的方法)