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關鍵字申明后即使在函數之外對變量引用也不會報錯。