闭包的概念和特点:
1、函数的嵌套
2、内部函数使用了外部变量
3、内部函数的方法名被外部函数返回
一、初识闭包
def func(): a = 100 def inner_func(): print("this is inner_func") print(a) print(inner_func) return inner_func t = func() print(t)
上述例子,inner_func()的函数名被func作为返回值返回,且内部函数使用了外部变量a,符合闭包的特征。执行结果如下:
<function func.<locals>.inner_func at 0x000002163C25C040> <function func.<locals>.inner_func at 0x000002163C25C040>
我们可以看到,t和内部函数指向同一块内存地址。
二、带参数的闭包
def func(m, n): a = 100 def inner_func(): print("this is inner_func") print(a+m+n) print(inner_func) return inner_func t = func(100, 200) print(t) t()
原文:https://www.cnblogs.com/ctltest/p/14676270.html