python global和nonlocal用法解析
阿新 • • 發佈:2020-02-03
這篇文章主要介紹了python global和nonlocal用法解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
◆global和nonlocal是Python的兩個重要變數作用域關鍵字
1.global用在全域性變數,應用場景:
變數定義在函式外部的時候,如果函式裡面想改變這個全域性變數的值,需要在當前的引用函式裡面重新定義一個變數 並用關鍵字global修飾。
例如:
a=1 def b(): a+=1 print(a) b()
用ide寫完這段程式碼的時候,還沒執行就會報紅線提示錯誤,執行之後產生錯誤,錯誤內容為:UnboundLocalError: local variable 'a' referenced before assignment。
解決方案:函式中重新宣告變數並加修飾符global修改:
#!/usr/bin/env python # encoding: utf-8 a=1 def b(): global a a+=1 print(a) b()
2.nonlocal非全域性變數,應用場景:
在函式的函式裡面使用函式的變數。表達的可能有點混亂,看程式碼就知道了
#!/usr/bin/env python # encoding: utf-8 def b(): num2=1 def c(): nonlocal num2#為了修改非全域性變數 num2+=2 print(num2) return c b()()
3.綜合應用
#!/usr/bin/env python # encoding: utf-8 gcount = 0 def global_test(): global gcount s=0 def g(): nonlocal s s+=2 print(s) return g gcount+=1 print (gcount) global_test()()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。