python函数

函数的闭包理解

代码:

def f6():
    live=50
    def live_change(blood=None):
        nonlocal live
        if blood==None:
            return live
        else:
            live+=blood
        return live
    return live_change
volume=f6()
print(volume)
print(volume())
print(volume(20))
  1. f6() 函数定义了一个局部变量 live,并赋值为 50。
  2. live_change() 函数是 f6() 函数内的一个内嵌函数。它接受一个参数 blood,如果 bloodNone,则返回 live 的当前值;否则,将 live 的值增加 blood,然后返回 live 的新值。这里使用了 nonlocal 关键字来声明 live 变量是外部函数 f6() 中的变量,而不是 live_change() 函数内的局部变量。
  3. 外部函数 f6() 返回了内部函数 live_change(),因此 volume 变量现在引用了 live_change() 函数。
  4. 接下来,打印了 volume 的值,它实际上是一个函数对象。
  5. 然后调用 volume(),由于没有传递参数,因此它返回 live 的当前值,即 50。
  6. 最后调用 volume(20),将 blood 参数传递为 20,这导致 live 的值增加 20,所以返回值为 70。

⭐重要理解:

 外部函数 f6() 返回了内部函数 live_change(),因此 volume 变量现在引用了 live_change() 函数。

相关推荐

  1. Python函数——函数介绍

    2024-03-24 08:26:02       31 阅读
  2. python函数

    2024-03-24 08:26:02       41 阅读
  3. Python 函数

    2024-03-24 08:26:02       31 阅读
  4. python函数

    2024-03-24 08:26:02       17 阅读
  5. python函数

    2024-03-24 08:26:02       19 阅读
  6. python函数

    2024-03-24 08:26:02       16 阅读
  7. python 函数

    2024-03-24 08:26:02       12 阅读
  8. python——函数

    2024-03-24 08:26:02       47 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 08:26:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 08:26:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 08:26:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 08:26:02       18 阅读

热门阅读

  1. 继承和深拷贝封装

    2024-03-24 08:26:02       20 阅读
  2. 大模型: 提示词工程(prompt engineering)

    2024-03-24 08:26:02       18 阅读
  3. JVM学习

    JVM学习

    2024-03-24 08:26:02      17 阅读
  4. 【测试思考】设计测试用例时,你在想什么

    2024-03-24 08:26:02       18 阅读
  5. Electron IPC通信机制深度解析与实例演示

    2024-03-24 08:26:02       17 阅读
  6. 如何系统地自学 Python?

    2024-03-24 08:26:02       15 阅读
  7. 学习资料记录

    2024-03-24 08:26:02       17 阅读
  8. 20 有效的括号

    2024-03-24 08:26:02       18 阅读
  9. 机器翻译评价指标 BLEU分数

    2024-03-24 08:26:02       21 阅读
  10. Day31 贪心算法

    2024-03-24 08:26:02       17 阅读
  11. Ubuntu 22.04 安装配置时间同步服务器

    2024-03-24 08:26:02       19 阅读
  12. Eureka和Nacos的关系

    2024-03-24 08:26:02       17 阅读