變數作用域
一般在函式體外定義的變數成為全域性變數,在函式內部定義的變數稱為區域性變數。
全域性變數所有作用域都可用,區域性變數只能在本函式可用,變數的使用順序是,區域性變數 > 全域性變數, 也就是說:優先使用區域性變數
那麼問題來了, 如果想在函式內使用全域性變數,或改變全域性變數的值, 應該怎麼做呢?
global關鍵字
為了解決函式內使用全域性變數的問題,python增加了global關鍵字, 利用它的特性, 可以指定變數的作用域。
global關鍵字的作用:宣告變數var是全域性的
**例項
例項1:
函式優先使用區域性變數
結果:例項2:
在沒有區域性變數的情況下, 使用全域性變數
str = 『global』
def func1():
print(str)
func1()
print(str)
結果:global
global
例項3:
改變全域性變數的值, 通過例項1可以看到, 函式內賦值並不能改變全域性變數的值,所以需要global關鍵字
str = 『global』
def func1():
global str
str = 『local』
print(str)
func1()
print(str)
結果:local
local
其他用法
你可以使用同乙個global語句指定多個全域性變數。
例如global var1, var2, var3
特殊型別
字串、數字型別是不能被在區域性被修改的,除非使用global關鍵字,但是 列表,字典是可修改,但不能重新賦值,如果需要重新賦值,需要在函式內部使用global定義全域性變數
[『global』, 『pythontab.com』, 『bbs.pythontab.com』]
[『global』, 『pythontab.com』, 『bbs.pythontab.com』]
發現上面的list並沒有使用global但是值卻改變了, 說明列表是可以在區域性被修改的
**例項2:
list = [『global』, 『pythontab.com』]
def func1():
list = [『docs.pythontab.com』]
print(list)
func1()
print(list)
結果:[『docs.pythontab.com』]
[『global』, 『pythontab.com』]
區域性變數賦值不能改變全域性變數的值
**例項3:
list = [『global』, 『pythontab.com』]
def func1():
global list
list = 『docs.pythontab.com』
print(list)
func1()
print(list)
結果:docs.pythontab.com
docs.pythontab.com
使用了global關鍵字後, 變數被重新賦值
引用 global關鍵字
引用賦值 data id 1 id 2 articlelist id 1 title 標題1 id 2 title 標題2 foreach data as key val print r data exit 輸出 array 0 array id 1 info array id 1 title 標題...
python中的global關鍵字
我最近遇到了乙個關於 python 全域性變數的問題,如下面這個簡單例子裡展示 當然實際 要比這個複雜的多,這裡只是乙個抽象出來當例子 例子中foo.py定義了函式f,而函式f呼叫了全域性變數a foo.py def f print a def main global a a 5 f if name...
python中的global關鍵字
1.變數作用域 先要明確作用域的概念,定義在函式內部的變數擁有乙個區域性作用域,而定義在函式外的擁有全域性作用域。a 5 這是乙個全域性變數 defhello a 1 a在這裡是區域性變數.print 函式內是區域性變數 a return a hello print 函式外是全域性變數 a 執行結果...