python區域性變數和全域性變數

2022-06-25 10:06:15 字數 1268 閱讀 8443

主要內容

1. 命名空間, 區域性命名空間, 全域性命名空間, 作⽤域, 載入順序.

2. 函式的巢狀

3. gloabal, nonlocal關鍵字

1.命名空間(也就是全域性和區域性)

命名空間分類:

1)全域性命名空間,   .py檔案內,函式外宣告的變數

2)區域性命名空間   在函式裡面宣告的變數

3)內建命名空間    python編譯器提供的變數比如print list等

幾類命名空間的載入順序

內建命名空間   > 全域性命名空間  > 區域性命名空間

取值順序

區域性命名空間  > 全域性命名空間  > 內建命名空間

a = 2

deffun():

a = 10

print(10)

fun()

print

(a)"""

執行結果是102

"""

命名空間的作用域

全域性命名空間是  py檔案,包含函式裡面

區域性命名空間  作用域是在函式內

我們可以通過globals()函式來檢視全域性作⽤域中的內容, 也可以通過locals()來檢視區域性作 ⽤域中的變數和函式資訊

示例:

a = 2

deffun():

a = 10c = 6

print(10)

deffun1():

b = 5

print

(globals())

print

(locals())

fun1()

print

(locals())

fun()

print(a)

函式巢狀

太容易了,不回顧了

關鍵字global和nonlocal

global是指在區域性變數中對全域性變數進行修改.

nonlocal是指呼叫父級的變數

python區域性變數和全域性變數

name gongwei 要在函式裡修改全域性變數,需要用globle home earth china cq def change name home 地球 注意只有字串和單獨數值在區域性變數中修改全域性變數要用globle輔助,其他如列表 字典可以直接修改 global name name xu...

python 區域性變數和全域性變數

在python中全域性變數可以作用於所有域,而函式內部呼叫時會優先使用區域性變數,如果搜尋不到區域性變數就會在全域性中搜尋相同的變數 當然,以上並不意味著我們不能在函式內部使用全域性變數。python 的作用域規則是,變數的建立總是會建立乙個新的區域性變數但是變數的訪問 包括修改 在區域性作用域查詢...

python全域性變數 區域性變數

定義在函式內的變數有區域性作用域,在乙個模組中最高端別的變數有全域性作用域。全域性變數的乙個特徵是除非被刪除掉,否則它們的存活到指令碼執行結束,且對於所有的函式,它們的值都是可以訪問的。global str global string def foo local str local string r...