闭包就是函数的嵌套使用,外层函数返回内层函数的引用,内层函数引用外层函数的变量。
实例:
def outer(num):
def inner(n):
return num+n
return inner
x=outer(5)
print(x(2))
如果想要在内层函数改变外层函数的变量值,可以用nonlocal声明
def outer(num):
def inner(n):
nonlocal num
num*=2
return num+n
return inner
x=outer(5)
print(x(2))