最近在編寫python程式時發現,在函式中可以對函式外面的全域性變數進行讀取、列印等操作,但是不能賦值,否則會報錯:
unboundlocalerror: local variable 'a' referenced before assignment
示例**如下:
a = 0
def fun():
print(a)
b = a + 1
a = 1
fun()
原因是變數a
被python直譯器認為是區域性變數而非全域性變數,並且在賦值之前就進行了引用。如果調整程式順序如下,就不會報錯了:
a = 0
def fun():
a = 1
print(a)
b = a + 1
fun()
但是我們發現,這並不符合我們程式設計的本意,沒有用到全域性變數a。於是修改程式,使用global關鍵字對全域性變數a進行宣告。這時a就變成了全域性變數,並且可以隨意讀取和賦值了。修改後的**如下:
a = 0
def fun():
global a #宣告全域性變數a
print(a)
b = a + 1
a = 1
fun()
php學習筆記 全域性變數,超全域性變數
超全域性變數 它們可以在乙個指令碼的全部作用域中都可用。在函式或方法中無需執行global variable就可以訪問它們。globals 引用 全域性作用域中可用的 全部變數 globals index x 75 y 25 function addition addition echo z ser...
Python學習筆記之全域性變數
在python中,使用全域性變數是需要使用global關鍵字進行申明的,否則會出問題。例如這樣的一段 python就會報錯 python view plain copy usr bin python filename use global.py author boyce email boyce.yw...
Python學習筆記之全域性變數
在python中,使用全域性變數是需要使用global關鍵字進行申明的,否則會出問題。例如這樣的一段 python就會報錯 python view plain copy usr bin python filename use global.py author boyce email boyce.yw...