美文网首页
python的闭包

python的闭包

作者: 帅子锅 | 来源:发表于2019-03-07 16:50 被阅读0次

在学装饰器之前首先得了解闭包这个概念,查阅了网上众多资料后,我来谈谈我对闭包的理解

闭包的定义

以下引用自百度

在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。
闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。

简单来说,内嵌函数引用外部函数变量(指包含内嵌函数的外函数中的变量,如下print_msg函数中的a)并返回内嵌函数的行为称为闭包。

一般情况下外界是调用不到一个函数内部的变量,如果需要调用函数内部变量就需要闭包这个概念,此时变量就不会随着函数的销毁而销毁。

举例来说,闭包就像飞船的救生舱。如果没有救生舱,当飞船被摧毁时,宇航员就得随着飞船一起被摧毁。有了救生舱之后,宇航员这个变量就可以进入到救生舱当中,被return 出来。这样即使飞船被摧毁。宇航员这个变量还是可以出来被外界接收。

代码举例

def print_msg(msg):
     a=1
    def printer():
        c=a+1
    return printer  # 变量a这个宇航员进入到救生舱之后必须把救生舱return 出去外界才能接收到
another = print_msg("Hello")
another()

相关文章

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • python闭包学习

    参考文章 python闭包python闭包一步一步教你认识Python闭包深入浅出python闭包

  • Python 闭包使用注意点

    1 Python 闭包 今天,聊下 python 的闭包。在函数编程中经常用到闭包。 闭包是什么,它是怎么产生的及...

  • python高级之闭包

    python高级之闭包 什么是闭包? 闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结...

  • Python 中的闭包

    Python 中的闭包:+ http://python.jobbole.com/82296/

  • 闭包

    浅谈 python 的闭包思想 首先 python的闭包使用方法是:在方法A内添加方法B,然后return 方法B...

  • python之理解闭包和装饰器

    python之理解闭包和装饰器 1、闭包函数 1.1 python中函数都是对象 结果: 上面定义一个shut函数...

  • 2018-11-20

    python函数的闭包 闭包: 嵌套函数调用外部函数的变量 注意: 闭包必须是内部函数调用外部函数定义的变量,这其...

  • Python装饰器(Decorator)完全指南-基础篇

    Decorator基本指南 前提知识 Python中的闭包(closure) 所谓闭包,指的是附带数据的函数对象。...

  • 闭包

    转载:[Python小记] 通俗的理解闭包 闭包能帮我们做什么? - Rei的博客 - CSDN博客

网友评论

      本文标题:python的闭包

      本文链接:https://www.haomeiwen.com/subject/isocpqtx.html