返回顶部
  • 230
分享到

闭包

2023-01-31 00:01:22 230人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

返回函数不可以引用后续可能会发生变化的变量 如果引用,则返回函数的返回值是基于变量最新的值计算而得的 如循环变量i,如果返回函数体内用到了i,则i的值是最后一次循环的i的值 使用示例   返回函数引用循环变量   def count(

返回函数不可以引用后续可能会发生变化的变量
如果引用,则返回函数的返回值是基于变量最新的值计算而得的
如循环变量i,如果返回函数体内用到了i,则i的值是最后一次循环的i的值

使用示例

  返回函数引用循环变量

  def count():
      fs = []
      for i in range(1, 4):
          def f():
               return i*i
          fs.append(f)
      return fs

  f1, f2, f3 = count()  
  print(f1())  #输出:9
  print(f2())  #输出:9
  print(f3())  #输出:9
  #f1(),f2()和f3()结果应该是1,4,9,但是返回的都是9
  #原因就在于返回的函数引用了变量i,但它并非立刻执行。等到3个函数都返回时,它们所引用的变量i已经变成了3,因此最终结果为9
  #f1(),f2(),f3()的函数体都是 return i*i,当循环到最后一次i变成了3,因此创建的三个函数返回值就都是return 3*3了

  返回函数不引用循环变量

    def count():
        def f(j):
            def g():
                return j*j
            return g
        fs = []
        for i in range(1, 4):
            fs.append(f(i))
        return fs
    f1, f2, f3 = count()  
    print(f1())  #输出:1
    print(f2())  #输出:4
    print(f3())  #输出:9

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

--结束END--

本文标题: 闭包

本文链接: https://lsjlt.com/news/182488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 闭包
    返回函数不可以引用后续可能会发生变化的变量 如果引用,则返回函数的返回值是基于变量最新的值计算而得的 如循环变量i,如果返回函数体内用到了i,则i的值是最后一次循环的i的值 使用示例   返回函数引用循环变量   def count(...
    99+
    2023-01-31
  • python---闭包
    1.闭包理解 闭包定义:在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包 2.必报的构成条件: 在函数嵌套(函数里面在定义函数)的前提下 内部函数使用了外部函...
    99+
    2023-09-02
    python numpy 开发语言 Powered by 金山文档
  • php 闭包
    一、概念说明 通常定义php函数时,都会指定一个函数名,这样的函数可以称为具名函数,但实际上PHP也支持定义没有函数名的函数,这类函数被称为闭包,也叫匿名函数,其本质是 Closure 类对象,类摘要...
    99+
    2023-09-02
    php 开发语言
  • python 闭包
    这里主要讲解我对于闭包的理解,不太深入,浅谈浅谈哈 1、说到闭包我就想先说函数名与变量之间的区别 def test(name): def test_in(): print(name) print(loca...
    99+
    2023-01-30
    python
  • python闭包
    闭包    1,闭包是嵌套在函数中的    2,闭包是内层函数对外层函数的变量的引用(改变)    3,闭包需要将其作为一个对象返回,而且必须逐层返回闭包举例:    def wrapper():        name = "ghl"  ...
    99+
    2023-01-31
    python
  • python3 闭包
    1. 函数引用def test1(): print("--- in test1 func----") #调用函数 test1() #引用函数 ret = test1 print(id(ret)) print(id(test1...
    99+
    2023-01-31
  • Python闭包与闭包陷阱举例详解
    目录1 什么是闭包2 闭包示例代码3 什么是闭包陷阱4 闭包陷阱代码实例4.2 第二组代码实例总结1 什么是闭包 在 Python 中,闭包是一种特殊的函数,它能够记住它所在的环境(...
    99+
    2023-01-28
    python中闭包的概念 python闭包详解 Python闭包
  • 闭包函数
    目录 什么是闭包?(掌握) 两种为函数传参的方式 闭包函数的应用(掌握) 回顾: 函数对象:可以将...
    99+
    2023-01-31
    函数
  • python闭包,count()
    ...
    99+
    2023-01-31
    python count
  • 谈谈自己的理解:python中闭包,闭包
    闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~请大家跟我理解一下,如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。闭包:   在一个外函...
    99+
    2023-01-31
    自己的 python 中闭包
  • 闭包之谜:深入探讨 JavaScript 闭包的行为
    范围和作用域链 闭包的作用域链由以下作用域组成: 局部作用域:闭包函数自身的作用域,其中包含闭包中声明的变量。 闭包作用域:创建闭包的函数的作用域,其中包含闭包访问的变量。 全局作用域:浏览器窗口或 Node.js 全局环境。 闭包可...
    99+
    2024-03-14
    闭包
  • 分享JavaScript闭包
    本篇内容主要讲解“分享JavaScript闭包”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分享JavaScript闭包”吧!  1. 概述  闭包(clos...
    99+
    2024-04-02
  • 分享js闭包
    这篇文章主要讲解了“分享js闭包”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分享js闭包”吧!## 闭包闭包是一个能读取其他函数内部变量的函数:1. ...
    99+
    2024-04-02
  • golang 闭包用法
    Golang 是一门非常流行的编程语言,尤其是在网络编程和大数据处理方面。Golang 同时也支持闭包(Closure)的使用,本文将介绍 Golang 中闭包的用法。什么是闭包?在 Golang 中,闭包是一个函数和它引用的环境变量的组合...
    99+
    2023-05-14
  • JavaScript闭包详解
    目录1.什么是闭包?1.2 闭包的记忆性:函数能够记住定义时所处的环境1.3 闭包现象:JS中每次创建函数时都会创建闭包2.闭包的功能:记忆性、模拟私有变量2.1 记忆性2.2 模拟...
    99+
    2024-04-02
  • es6有闭包吗
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。一、变量作用域变量根据作用域的不同分为两种:全局变量和局部变量。函数内部可以使用全局变量。函数外部不可以使用局部变量。当函数执行完毕,本作用域内的局部变量...
    99+
    2022-11-22
    javascript ES6 闭包
  • python 闭包详解
    闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的...
    99+
    2023-01-31
    详解 python
  • Python中的闭包
    目录1、闭包概念2、闭包条件3、闭包完成计数效果4、闭包的缺点及作用1、闭包概念 闭包在函数中提出的概念,简单来说就是一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境...
    99+
    2024-04-02
  • JavaScript中的闭包
    一.什么是闭包 1.闭包的定义 闭包并不是JS特有的,因此可以从两个角度定义闭包。 1)计算机科学中 闭包又称为词法闭包(在进行词法分析的时候这个闭包就确定了),或者是函数闭包。是在支持头等函数的编程语言中(意思是函数作为一等公民的编程语言...
    99+
    2023-08-18
    javascript 前端 java
  • 不同语言中闭包与Go语言闭包的差异
    不同语言的闭包实现方式各不相同。go 语言的闭包称为匿名函数,只捕获包含范围内的局部变量。这种机制为 go 语言闭包提供了更高的安全性和可控性。 闭包:不同语言之间的差异与 Go 语言...
    99+
    2024-04-11
    go语言 闭包 python 作用域
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作