1. 程式人生 > >9-29 函數嵌套及作用域鏈

9-29 函數嵌套及作用域鏈

int 註釋 pre print 影響 pytho cal nonlocal pri

特別註意local()域nonloca(),看代碼註釋部分

nonlocal只能用於局部變量,找上層離當前函數最近一層的局部變量
#聲明了nonlocal的內部函數的變量修改會影響到離當前函數最近一層的局部變量
a=11
def outer():
    a = 1
    def inner():
        print(a)
        print(‘inner‘)
        b=2
        def inner2():
            # global a    #聲明了一個全局變量
            nonlocal a  #聲明了一個上面第一層局部變量
            a+=1    #不可變數據類型的修改
            print(a,b)
            print(‘inner2‘)
        inner2()
    inner()
    print(‘**a**:‘,a)
outer()
print(‘**全局a**:‘,a)

9-29 函數嵌套及作用域鏈