Python 17 變數作用域LEGB(作用域鏈)

2021-09-25 20:58:18 字數 508 閱讀 9040

python中的 legb(作用域鏈)

l:區域性變數–local

e:外層函式/閉包空間–enclosing function

g:全域性變數–global

b:內建模組–builtins

當找乙個變數時,現在 local 找,即先找本函式內的變數,若找到則結束;

否則,找閉包空間,即外層函式,從內向外乙個乙個找,若找到則結束;

否則,找全域性變數,若找到則結束;

否則,找內建模組中的變數,若找到則結束。

內層函式使用nonlocal找全域性變數和內層函式內變數之間的所有重名變數

多層的話,先找到哪乙個就是哪乙個

a=1

def out():

a=100

def inner():

nonlocal a

a=a*2

print(a)

return inner

out()() # 200

python17常用模組

1.os 模組 為訪問作業系統的特定熟悉提供方法 提供了對平台模組的封裝 對 windows,對mac 的封裝等 os.environ 對環境變數的操作 os.getcwd 獲取當前的工作目錄 os.access path,mod 判斷對乙個檔案或者目錄是否具有指定的許可權 mode 引數的可選值 ...

python變數作用域

變數作用域 scope 在python中是乙個容易掉坑的地方。什麼是作用域 作用域簡單說就是乙個變數的命名空間。中變數被賦值的位置,就決定了哪些範圍的物件可以訪問這個變數,這個範圍就是命名空間。python賦值時生成了變數名,當然作用域也包括在內。python的作用域一共有4中,分別是 l loca...

Python 變數作用域

g global defchange global g g g change print g change print g 結果 global globalchange def function g function deflocalvar g local defglobalvar global g...