Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1655853
  • 博文数量: 2244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22569
  • 用 户 组: 普通用户
  • 注册时间: 2020-11-26 14:30
个人简介

更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号

文章分类

全部博文(2244)

文章存档

2024年(94)

2023年(643)

2022年(693)

2021年(734)

2020年(80)

我的朋友

分类: Python/Ruby

2021-12-16 14:26:36

  Python中什么是闭包?本篇文章为大家带来的内容就是关于Python闭包的介绍,有需要的朋友们,可以详细阅读一下,希望对你们有用。

  什么是闭包?

  在函数中可以定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。

  闭包可以用来在一个函数与一组私有变量之间创建关联关系。

  在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。

  形成闭包的三个条件

  必须有一个内嵌函数—这对应函数之间的嵌套;

  内嵌函数必须引用一个定义在闭合范围内的变量—内部函数引用外部变量;

  外部函数必须返回内嵌函数—必须返回内部函数。

  换句话来说:闭包的概念很简单,一个可以引用在函数闭合范围内变量的函数,即内部函数,只有那个内部函数才有所谓的__closure__属性。

  闭包的原理

  形成闭包之后,闭包函数会获得一个非空的_Closure_属性,这个属性是一个元组。

  组里面的对象为cell对象,而访问cell对象的cell_contents属性则可以得到闭包变量的当前值。

  而随着闭包的继续调用,变量会进行再次更新。由此可见,一般形成闭包之后,Python确定会将_closure_和闭包函数绑定作为储存闭包变量的场所。

  闭包的好处是什么?

  其实,闭包并不是必须的。

  没有闭包的话,Python的功能不会受到任何影响;但有了闭包之后,可以提供一种额外的解决方案。

阅读(540) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~