#!/usr/bin/python3

##python3 闭包 与 nonlocal

#如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,
#那么内部函数就被认为是闭包(closure)

def A_():
	var = 0
	def clo_B():
		var_b = 1   # 闭包的局部变量
		var = 100
		print(var) # 引用外部的var , 但是不会改变var 的值
	return clo_B
#clo_B是一个闭包

#nonlocal 关键字

def A_():
	var = 0
	def clo_B():
		nonlocal var   # nonlocal关键字 指定var 不是闭包的局部变量
		var = var + 1   # 若 不使用nonlocal 关键字 , 则此行代码会出现错误