python 闭包自己简单理解

热门标签

,

本博客主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

条件:

1)必须有一个内嵌函数(函数里定义的函数)——这对应函数之间的嵌套
2)内嵌函数必须引用一个定义在闭合范围内(外部函数里)的变量——内部函数引用外部变量
3)外部函数必须返回内嵌函数——必须返回那个内部函数

闭包是由函数及其相关的引用环境组合而成的实体

(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个参数a, 内层函数依旧传入一个参数b, 内层函数使用a和b, 最后返回内层函数)

函数可以作为另一个函数的参数或返回值

简单应用:我想计算学生1的总成绩 然后我 计算到一半在计算学生2的成绩 他们两个不影响 我再回去计算学生1的成绩还是接着那个计算

请看下面的列子(自己理解)

 

#定义一个初始值
origin = 0
def school(point):
    #传入一个值
    def grow(step):
        #使用外层函数的 变量
        nonlocal point
        # 进行 加法操作
        new_point = point+step
        # 给初始值赋值
        point = new_point
        return new_point
    return grow
#定义一个新的 传入初始值为  0
student1 = school(origin)
#定义一个新的 传入初始值为  0
student2 = school(origin)
# 传入的是 0 第一次 结果是10
print(student1(10))
#第二次已经加了10 了 就会在 10的基础上在进行加
print(student1(10))
#此时传入的 是 0 所以就会 12+0
print(student2(12))
标签:

未经允许不得转载:作者:乔越, 转载或复制请以 超链接形式 并注明出处 乔越博客
原文地址:《python 闭包自己简单理解》 发布于2019-06-07

分享到:
赞(5) 打赏

评论 3

1 + 5 =
  1. #1
    qq_avatar

    看看学习一下

    裂魂人4个月前 (06-07)回复
  2. #2

    正好用到

    好商网3周前 (09-21)回复
  3. #3

    哈哈

    ade2周前 (09-30)回复
python 闭包自己简单理解

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

79代刷网
代刷网各种代刷 售后有保证 代做各种网站有需要留言给我即可!
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册