在函数内部访问外部的变量
变量是有作用域的. 函数不仅可以定义在模块的最外层,还可以定义在另外一个函数的内部,像这种定义在函数里面的函数称之为嵌套函数例如: def print_msg(): # print_msg 是外围函数 msg = "zen of python" def printer(): # printer是嵌套函数 print(msg) printer() # 输出 zen of python print_msg() 对于嵌套函数,它可以访问到其外层作用域中声明的非局部变量,比如代码示例中的变量 msg 可以被嵌套函数 printer 正常访问。 那么有没有一种可能即使脱离了函数本身的作用范围,局部变量还可以被访问得到呢?答案是闭包