python中的全局變量與局部變量


  全局變量與局部變量兩者的本質區別就是在於作用域,全局變量即在整個程序中,任何地方都可以訪問。而局部變量,試着在函數內部聲明的變量,當函數運行結束時,局部變量就會被內存釋放。

例子:

1 name='zs'
2 def change():
3      name='ls'
4      change()
5 print(name)   #輸出為:’zs'  函數內的name是一個局部變量,函數運行結束即消失

如果要修改全局變量,要在函數內部用關鍵字global聲明。

1 name='zs'
2 def change():
3     global name
4     name='ls'
5 change()
6 print(name)     #輸出為 ls   

其實局部變量是有層次的,如果出現函數的嵌套,內層函數想調用外層的變量是,是不能用global聲明的,因為外層的變量不叫全局變量。這時候如果想修改外層的變量,就得用到一個新的關鍵字:nonlocal  

 

#強行使用global變量會報錯,下面代碼可以自己運行試試

def fun():
    a = 3

    def fun2():
        global a
        a*= 2
        print(a)

    return fun2()
fun()       

 

 如果使用nonlocal就可以完美解決:

 1 def fun():
 2     a = 3
 3 
 4     def fun2():
 5         nonlocal a
 6         a*= 2
 7         print(a)
 8 
 9     return fun2()
10 fun()           #輸出 6

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM