python闭包
Posted python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python闭包相关的知识,希望对你有一定的参考价值。
闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。闭包是是指引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,闭包是由函数和与其相关的引用环境组合而成的实体。
如果在一个内嵌函数里,对在外部函数内(但不是在全局作用域)的变量进行引用,那么内嵌函数就被认为是闭包(closure)。
定义在外部函数内但由内部函数引用或者使用的变量称为自由变量。
总结一下,创建一个闭包必须满足以下几点:
1. 必须有一个内嵌函数
2. 内嵌函数必须引用外部函数中的变量
3. 外部函数的返回值必须是内嵌函数
举例:
1 def func(name): 2 def func_in(grend): 3 print(name,grend) 4 return func_in 5 6 func(‘test‘,1)
这里当调用 func
的时候就产生了一个闭包func__in
,并且该闭包持有自由变量 name
,因此这也意味着,当函数func
的生命周期结束之后,name
这个变量依然存在,因为它被闭包引用了,所以不会被回收。
以上是关于python闭包的主要内容,如果未能解决你的问题,请参考以下文章