zoukankan      html  css  js  c++  java
  • 闭包

    概念解析:

    闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。
    如果在一个内部函数里,对在外部函数内(但不是在全局作用域)的变量、参数进行引用,那么内部函数就被认为是闭包(closure)。
    定义在外部函数内但由内部函数引用或者使用的变量称为自由变量。
    有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。

    总结一下,创建一个闭包必须满足以下几点:
    (1)必须有一个内部函数
    (2)内部函数必须引用外部函数中的变量或参数
    (3)外部函数的返回值必须是内部函数

    def outer():
        name = "alex"
    
        def inner(): #条件1:inner就是内部函数
            print("在inner里打印外层函数的变量",name) #条件2:引用外部函数的一个变量
    
        return inner #条件3:外部函数的返回值是内部函数
    
    f = outer()
    f()

      闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域。
      装饰器就是一种闭包的应用,只不过其传递的参数是函数名。

  • 相关阅读:
    嵌入式系统之微处理器篇
    嵌入式系统之基础概念篇
    八大排序算法简述
    进程-PV操作
    实时操作系统与分时操作系统
    串口助手
    STM32通用定时器功能和用法
    三种主流芯片架构简单比较
    python 我的第一个自动化脚本
    jquery部分实用功能
  • 原文地址:https://www.cnblogs.com/windyrainy/p/10657641.html
Copyright © 2011-2022 走看看