Python闭包
参考自廖雪峰的Python教程
在理解闭包之前,我们需要先理解 变量是可以指向函数的,同时函数也是变量。
这里我们使用绝对值函数作为示例,我们把abs函数赋值给变量f,f也就有了abs函数的功能
|
|
再写一个示例
|
|
函数也可以作为结果值返回
这里以一个求和函数为例子
|
|
这里写个函数它不马上返回求和结果,而是返回求和函数!外部函数add_sum有内嵌函数sum,内嵌函数sum使用了外部函数add_sum的参数args,外部函数的返回值是内嵌函数sum,当我们调用add_sum的时候返回的不是求和结果而是求和函数,调用函数f()时候才是求和结果!!!这种就是闭包(Closure)
创建闭包必须满足以下三点:
- 必须有一个内嵌函数
- 内嵌函数必须引用外部函数的参数和变量
- 外部函数的返回值必须是内嵌函数
|
|
当我们调用add_sum时每次返回的都是一个新的函数,f1和f2的调用结果互不影响
|
|