【python】nonlocal關鍵字
'''
nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變量。
'''
def work():
x = 0
def new_work():
nonlocal x
x += 3
return x
return new_work
f=work()
print(f())
print(f())
print(f())
# 運行結果:
3
6
9
'''
使用global 實現
'''
a =0
def new_work():
global a
a=a+3
return a
print(new_work())
print(new_work())
print(new_work())
# 運行結果:
3
6
9
def dosometing():
a =25
def add(x):
d=a+x
return d
return add
a = 10
f=dosometing()
print(f(5))
print(f(5))
print(f(5))
# 運行結果
30
30
30
'''
閉包= 函數+環境變量
nonlocal關鍵字用來在函數或其他作用域中使用外層(非全局)變量。
'''
def dosometing():
a =25
def add(x):
nonlocal a
a=a+x
return a
return add
a = 10
f=dosometing()
print(f(5))
print(f(5))
print(f(5))
# 運行結果:
30
35
40