python的變數是存在作用域的,在代碼中不同位置的變數作用的範圍會有所不同,比如有的變數在整段代碼中都可以使用,有的變數卻只在函數內部使用。python中把能夠在整段代碼任意位置有效的變數稱為全局變數,只在函數內部使用的變數稱作局部變數。 全局變數: a = 520 #此時a作為全局變數 def ...
python的變數是存在作用域的,在代碼中不同位置的變數作用的範圍會有所不同,比如有的變數在整段代碼中都可以使用,有的變數卻只在函數內部使用。python中把能夠在整段代碼任意位置有效的變數稱為全局變數,只在函數內部使用的變數稱作局部變數。
全局變數:
a = 520 #此時a作為全局變數 def fuction(): print('函數內部列印結果:',a) fuction() print('函數之外列印輸出:',a) #列印結果展示 #函數內部列印結果: 520 #函數之外列印輸出: 520
局部變數:
def function02(): a = 521 print('函數內部列印結果:',a) function02() print('函數之外列印輸出:',a)
# 列印結果展示
# 函數內部列印結果: 521 # Traceback (most recent call last): # File "E:/python/老男孩視頻教學/代做課設/demo02.py", line 22, in <module> # print('函數之外列印輸出:',a) # NameError: name 'a' is not defined
我們發現當變數只在函數內部賦值時,在函數之外如果對其列印的話會報錯,顯示變數並沒有被定義,因為其作用域只是在函數內部,當函數執行之後就會被釋放,在函數之外相當於沒有定義。
然而在一些特定場景中,我們需要獲取函數內部定義的變數時,換句話就是如何讓上述關於局部變數的代碼運行不報錯,這裡我們介紹global關鍵字解決上述問題。global關鍵字的作用:聲明變數var是全局的,例如:
def function02(): global a a = 521 print('函數內部列印結果:',a) function02() print('函數之外列印輸出:',a) # #列印結果展示 # # #函數內部列印結果: 521 # #函數之外列印輸出: 521
從運行結果可以看到即使在函數內部定義的變數,在使用global關鍵字申明後即使在函數之外對變數引用也不會報錯。