Python 變數作用域

2021-07-27 10:37:54 字數 1306 閱讀 7784

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 全域性作用域...