美文网首页
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的闭包

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