nonlocal可以修改外层函数变量

这样内层函数 mum+=1,不能修改外层函数的num

def outer():
    #外部函数变量
    num = 10
    def inner():
        #内层函数修改外层函数变量不能修改,如果想修改,加nonlocal,如下:
        num += 1
    inner()
outer()

使用nonlocal可以修改外层函数变量num

def outer():
    #外部函数变量
    num = 10
    def inner():
        #用nonlocal在局部函数中,
        nonlocal num
        num += 1
    inner()
    return num
res = outer()
print(res)

原文地址:https://www.cnblogs.com/john5yang/p/15600637.html