作用域的嵌套
def function1(param1):
def function2(param2):
return param2 * param1
return function2
double = function1(2) # 传递参数 param1 = 2
double(5) # 此时fun2 可以调用来自外部局部作用域fun1的变量,即param2 = 5
fun2函数位于fun1函数中,fun1函数返回里面的fun2,返回的fun2函数可以访问fun1所在的作用域。
当fun1被调用时,将重新定义fun2,由于python的嵌套作用,可在fun2中访问来自外部局部作用域fun1 的变量。
此时param1 = 2;param2 = 5,返回的结果是10
像function2 这样存储其所在作用域的函数成为闭包