闭包内修改外部变量
闭包内修改外部变量
def func_out(num1):
def func_inner(num2):
num1 = num2 + 10
return func_inner
问题:在func_out内中的num1, 能够通过func_inner内的num1 = num2 + 10 修改func_out中num1的值?
- 修改闭包内使用的外部函数变量用
nonlocal关键字来完成
示例代码
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