闭包内修改外部变量

闭包内修改外部变量

def func_out(num1):
	def func_inner(num2):
		num1 = num2 + 10
	return func_inner

问题:在func_out内中的num1, 能够通过func_inner内的num1 = num2 + 10 修改func_outnum1的值?

示例代码

def func_out(num1):
	def func_inner(num2):
		nonlocal num1
		num1 = num2 + 10
	print(num1)
	func_inner(10)
	print(num1)

	return func_inner

# f = func_out(10)
# f(10)
func_out(10) # 运行结果输出10 20