3 回答

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
nonlocal
:
x = 0def outer(): x = 1 def inner(): x = 2 print("inner:", x) inner() print("outer:", x)outer()print("global:", x)# inner: 2# outer: 1# global: 0
nonlocal
inner()
x
outer()
x
:
x = 0def outer(): x = 1 def inner(): nonlocal x x = 2 print("inner:", x) inner() print("outer:", x)outer()print("global:", x)# inner: 2# outer: 2# global: 0
如果我們用 global
,它會(huì)束縛 x
正確的“全局”值: x = 0def outer(): x = 1 def inner(): global x x = 2 print("inner:", x) inner() print("outer:", x)outer()print("global:", x)# inner: 2# outer: 1# global: 2

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
global
def make_counter(): count = 0 def counter(): nonlocal count count += 1 return count return counter
def counter_generator(): count = 0 while True: count += 1 yield count
但
添加回答
舉報(bào)