python中nonlocal 的作用域

时间:2021-05-17 21:12:30
'''
nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。
'''
def work():
x = 0
def new_work():
nonlocal x
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