Python學習筆記之全域性變數

2021-06-26 16:41:44 字數 1275 閱讀 7196

在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()  

print

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()  

print

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...