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
g = 'global'
defclosingvar
():nonlocal g
g = 'nonlocal'
localvar()
print(g)
globalvar()
print(g)
closingvar()
print(g)
function()
print(g)
'''結果:
function
function
nonlocal
global
'''
總結:
第一種
g = 10
defprintg
(): print(g) #在內部沒有賦值,則此g就是外層的g
deflocalvar
(): g = 'local'
#如果內部有賦值,則此g就是這個函式的區域性變數
第二種
def
globalvar
():global g #使用global描述的變數是全域性的g
g = 'global'
第三種
def
closingvar
():nonlocal g #使用nonlocal描述的變數是函式外層最近的g,不包含全域性的g
g = 'nonlocal'
在舉個例子
def
function
(): g = 'function'
defclosingvar
():nonlocal g #這個g就是外層離他最近的g,也就是閉包中的g
g = 'nonlocal'
python變數作用域
變數作用域 scope 在python中是乙個容易掉坑的地方。什麼是作用域 作用域簡單說就是乙個變數的命名空間。中變數被賦值的位置,就決定了哪些範圍的物件可以訪問這個變數,這個範圍就是命名空間。python賦值時生成了變數名,當然作用域也包括在內。python的作用域一共有4中,分別是 l loca...
變數作用域 python
python 中,程式的變數並不是在哪個位置都可以訪問的,訪問許可權決定於這個變數是在 賦值的。變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱。python的作用域一共有4種,分別是 以 l e g b 的規則查詢,即 在區域性找不到,便會去區域性外的區域性找 例如閉包 再找不到就會去全...
Python變數作用域
python 中,程式的變數並不是在哪個位置都可以訪問的,訪問許可權決定於這個變數是在 賦值的。變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱。python的作用域一共有4種,分別是 l local 區域性作用域 e enclosing 閉包函式外的函式中 g global 全域性作用域...