Python 關鍵字global全域性變數詳解

2021-09-28 17:05:25 字數 1598 閱讀 8983

變數作用域

一般在函式體外定義的變數成為全域性變數,在函式內部定義的變數稱為區域性變數。

全域性變數所有作用域都可用,區域性變數只能在本函式可用,變數的使用順序是,區域性變數 > 全域性變數, 也就是說:優先使用區域性變數

那麼問題來了, 如果想在函式內使用全域性變數,或改變全域性變數的值, 應該怎麼做呢?

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 執行結果...