闭包的结构:
1.外部函数:外部函数返回内部函数的引用
2.内部函数:内部函数使用了外部函数的参数或者变量
把这种结构的整体称为闭包
闭包与普通函数的区别:
1.普通函数能保存功能,但是不能保存函数给的数据
比如执函行数foo(1000)后,1000这个值就没有办法保存到内存中了
2.闭包能保存功能,也可以保存数据
当执行fun(100)后,还可以在内存中保存100这个数据。
闭包的使用:
def outer(number): def inner(i_num): print("内部函数传递的参数",i_num) print("内部函数使用了外部函数的变量或者参数%d" %number) return inner #闭包的使用 f=outer(100) f("你好") f(20)
输出:
内部函数传递的参数 你好
内部函数使用了外部函数的变量或者参数100
内部函数传递的参数 20
内部函数使用了外部函数的变量或者参数100