作用域
def change_msg(): msg = 'yes' def changer(): msg = 'no' changer() print(msg) change_msg() # yes
函数外部不可访问局部变量
嵌套函数
def print_msg(): msg = 'OK' def printer(): print(msg) printer() print_msg() # ok
在一个函数内部定义函数被称为嵌套函数
闭包
def adder(x): def wrapper(y): return x+y return wrapper adder5 = adder(5) adder5(2) adder5(6)
此时adder函数将嵌套函数wrapper返回
首先设置x为5 然后依次传入 y = 2、6
闭包的用处
1.闭包执行完成后,依然能保持当前的运行环境
2.通过改变外作用域的局部变量可以得到不同的结果