函数的引用、闭包
函数的引用
在python中使用def可以定义一个函数体,使其能够被随时随地的调用。
在程序运行的过程中如果仅仅只是遇到了def进行定义函数体的时候,将每个函数体中的代码移动到内存,并将函数名默认创建为变量,并引用到定义的函数体中。
如果在定义完函数体时,使用另一个变量等于该函数体的引用,则此时该遍历也引用与此函数体。
闭包
如果在def定义的函数中,再次定义一个函数,并且在此函数中引用,外部的函数中的变量,并在外部函数中返回内部函数的引用,此时称这种现象为闭包。
解析:
在调用外部函数的时候,返回值为内部函数的引用,所以此时b变量指向引用内部函数test1,可以直接像使用函数一样使用b变量。
在使用内部函数的时候,外部函数必须首先创建运行(如:test(a)),并且在内部函数未被销毁之前,外部函数不能被销毁,且外部函数的变量一直存在。