在python中,使用全域性變數是需要使用global關鍵字進行申明的,否則會出問題。例如這樣的一段**,python就會報錯
[python]view plain
copy
#!/usr/bin/python
#filename: use_global.py
#author: boyce
#email: [email protected]
cnt=0
deffun():
cnt+=1
pass
fori
inrange(0,
10):
fun()
cn
報錯內容是:
traceback (most recent call last):
file "use_global.py", line 13, in
fun()
file "use_global.py", line 9, in fun
cnt+=1
unboundlocalerror: local variable 'cnt' referenced before assignment
意思是區域性變數cnt在引用之前沒有被分配,相當於c中的對乙個沒有定義的區域性變數進行賦值。原因是,python跟c語言不同,在區域性作用域申明同名的變數,它會生成乙個新的區域性變數,而不是使用外邊的變數,因為它沒有像c語言int a; a=4這樣的定義方式和引用方式。在這裡,fun裡面的cnt是屬於fun的區域性變數的,跟外邊的cnt不是同乙個cnt。
如果要對外邊的cnt進行操作,則需要先要使用global關鍵字進行申明,說明使用的是全域性變數cnt,而不是在fun中重新分配乙個新的cnt變數。
[python]view plain
copy
#!/usr/bin/python
#filename: use_global.py
#author: boyce
#email: [email protected]
global
cnt
cnt=0
deffun():
global
cnt
cnt+=1
pass
fori
inrange(0,
10):
fun()
cn
執行結果是:10
Python學習筆記之全域性變數
在python中,使用全域性變數是需要使用global關鍵字進行申明的,否則會出問題。例如這樣的一段 python就會報錯 python view plain copy usr bin python filename use global.py author boyce email boyce.yw...
python學習筆記之全域性變數
usr bin python coding utf 8 class employee 所有員工的基類 empcount 0 def init self,name,salary self.name name self.salary salary employee.empcount 1 def disp...
php學習筆記 全域性變數,超全域性變數
超全域性變數 它們可以在乙個指令碼的全部作用域中都可用。在函式或方法中無需執行global variable就可以訪問它們。globals 引用 全域性作用域中可用的 全部變數 globals index x 75 y 25 function addition addition echo z ser...