python闭包的概念和条件是什么?有什么用?
导读:这篇文章给大家分享的是python闭包的相关内容,一些刚接触python闭包的朋友可能对于闭包概念、闭包条件、闭包的缺点及作用等等这些不是很了解,对此本文就给大家讲讲什么是闭包,文中介绍的非常详细,感兴趣的朋友接下来跟随小编一起学习一下吧。...
这篇文章给大家分享的是python闭包的相关内容,一些刚接触python闭包的朋友可能对于闭包概念、闭包条件、闭包的缺点及作用等等这些不是很了解,对此本文就给大家讲讲什么是闭包,文中介绍的非常详细,感兴趣的朋友接下来跟随小编一起学习一下吧。
1、闭包概念
闭包在函数中提出的概念,简单来说就是一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境外被执行。这样的一个函数我们称之为闭包。实际上闭包可以看做一种更加广义的函数概念。因为其已经不再是传统意义上定义的函数。
闭包这个概念不仅仅只有在Python
中存在,在任何一个编程语言中都几乎存在。
2、闭包条件
闭包的条件:
- 外部函数中定义了内部函数
- 外部函数是有返回值
- 返回值是:内部函数
- 内部函数还引用了外部函数的变量
格式如下所示:
def 外部函数(): ... def 内部函数(): ... return 内部函数
示例代码:
def func(): a = 100 def inner_func(): b = 200 print(a, b) return inner_func x = func() print(x) # function func.locals> .inner_func at 0x0000021704CD9620> x() # 100 200 # 这样就可以直接调用inner_func函数,如果return不返回一个内部函数的话是不会有任何输出的
3、闭包完成计数效果
使用闭包还可以完成计数器的效果
def generate_count(): container = [0] def add_one(): container[0] += 1 print(f"这是第{ container[0]} 次调用") return add_one count = generate_count() count() # 这是第1次调用 count() # 这是第2次调用 count() # 这是第3次调用
4、闭包的缺点及作用
闭包的缺点如下所示:
- 作用域没有那么直观
- 因为变量不会被垃圾回收所以有一定的内存占用问题。
闭包的作用如下所示:
- 可以使用同级的作用域
- 读取其他元素的内部变量
- 延长作用域
现在大家对于闭包概念、闭包条件、闭包的缺点及作用等等这些应该都清楚了吧,上述示例有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习python闭包有帮助,想要了解更多大家可以关注网络其它相关文章。
文本转载自脚本之家
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: python闭包的概念和条件是什么?有什么用?
本文地址: https://pptw.com/jishu/651435.html