【Python函数】闭包函数

  • 定义:

    • 函数内部定义另外一个函数并且该内部函数可访问和修改外部变量的值

  • 原理:

    • 外部函数执行完后,有变量被内部函数使用则会将该变量绑定到内部变量后,再释放内存
  • 语法

    • 
      def outer_function():def inner_function():return 语句return inner_functionr = outer_function()  # r指向的是函数inner_function的地址r1 = r()  # 调用inner_function函数,得到返回值
  • 内部函数访问和修改外部变量的值

    • 访问
    • def adder(x):def wrapper(y):return x + yreturn wrapperadder5 = adder(5)print(adder5(6))  # 12
      
    • 修改
      • 外部函数的变量是不可变数据类型,使用nonlocal声明
    • def outer_function():a = 10def inner_function():nonlocal aa = 11return a*2return inner_functionr = outer_function()
      r1 = r() 
      print(r1)  # 22
    • 外部函数的变量是可变数据类型
      • def outer_function(start):a = [start]def inner_function():a[0] = a[0] +1return a[0]return inner_functionr = outer_function(5)
        print(r(),r()) # 6,7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一张网页截图,AI帮你写前端代码,前端窃喜,终于不用干体力活了

简介 众所周知,作为一个前端开发来说,尤其是比较偏营销和页面频繁改版的项目,大部分的时间都在”套模板“,根本没有精力学习前端技术,那么这个项目可谓是让前端的小伙伴们看到了一丝丝的曙光。将屏幕截图转换为代码&a…

02_W5500网络初始化

目录 1.如何与W5500通信? 2.SPI数据帧: 3.W5500寄存器: 通用寄存器: Socket 寄存器区: 4.代码分析: 5.测试: 1.如何与W5500通信? 我们在W5500介绍中可以看到W5500支持SPI通信协议&#x…

RoPE旋转位置编码浅析

RoPE旋转位置编码浅析 本文介绍了旋转位置编码RoPE在大模型中的广泛应用,包括Llama、Mistral 7B、Baichuan、ChatGLM、Qwen、…等。由于计算资源限制,大模型通常在较小的上下文长度中进行训练,导致在推理超出预训练长度时性能显著下降。为了解决这个问题,涌现了许多基于Ro…

MySQL数据库基础篇

文章目录 前言1.MySQL数据库概述2.SQL2.1 SQL通用语法2.2 SQL分类2.3 DDL2.3.1 数据库操作2.3.2 表操作 2.4 图形化界面工具2.5 DML2.5.1 添加数据2.5.2 修改数据2.5.3 删除数据 2.6 DQL2.6.1 基本语法2.6.2 基础查询2.6.3 条件查询2.6.4 聚合函数2.6.5 分组查询2.6.6 排序查询…

怎样创建自己的百度百科词条?

对于企业、名人、品牌等,拥有一条详实的百度百科词条更是形象塑造和品牌推广的有效途径。怎样创建自己的百度百科词条?创建百度百科词条并非难事,关键在于态度和执行力。接下来伯乐网络传媒就来给大家分享一下! 一、创建百度百科词…

Zabbix自定义监控内容

自定义监控客户端服务器登录的人数 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息 1.在客户端创建自定义key //明确需要执行的 linux 命令 who | wc -l//创建 zabbix 的监控项配置文件,用于自定义 key vim /etc/zabbix/zabbix_ag…

vue2-省市县三级联动选择框

Json数据&#xff1a;https://yjy-oss-files.oss-cn-zhangjiakou.aliyuncs.com/tuxian/area.json 如何访问本地文件参考&#xff1a;vue-访问本地json文件_vue3读取json文件-CSDN博客 .vue文件&#xff1a; <template><select v-model"mailAddress1" style…

为什么游戏公司不太愿意采用“微服务”架构?

为什么游戏公司可能不太愿意采用微服务架构&#xff1a; 实时性和性能需求&#xff1a; 游戏服务器对实时性能的要求非常高&#xff0c;微服务的网络开销和复杂性可能会影响游戏的实时性&#xff0c;尤其是在需要高速多向通讯的场景。 通信模式的复杂性&#xff1a; 游戏服务器…

【云备份】客户端实现 及 项目整体总结

文章目录 客户端客户端实现思想客户端文件操作类的设计与拷贝Util.hpp的设计data.hpp的设计Storage —— 持久化存储Initload——数据初始化加载 cloud.hpp的设计GetFileIdentifier——创建文件唯一标识Upload—— 文件上传IsNeedupload —— 客户端文件是否需要上传判断RunMod…

chineseocr项目不使用web推理-docker容器化

整个流程介绍 拉取 ufoym/deepo 镜像 -- 因为包含了主流深度学习框架&#xff0c;镜像4G出头。拉取 chineseocr 项目代码。修改代码&#xff0c;不使用web&#xff0c;增加命令行传入图片路径的功能打包成docker镜像。 开始 拉取 ufoym/deepo 镜像 &#xff1a;cpu版本为例 do…

用php上传图片到阿里云oss

如果你想自动创建目录并将文件上传到新的目录下&#xff0c;你可以使用阿里云 OSS 的 createObject 方法来实现。下面是更新后的示例代码&#xff1a; php <?php require_once __DIR__ . /vendor/autoload.php; // 引入 SDKuse OSS\OssClient; use OSS\Core\OssException;…

设计必备网站,每天必看,无需翻墙。

设计师每天需要浏览各类设计互交网站&#xff0c;找素材、找灵感、看教程等等&#xff0c;下面就推荐几个非常好用的设计网站&#xff0c;我本人用了好几年&#xff0c;对广大设计师们一定有帮助&#xff0c;感觉收藏起来吧&#xff01; 1、免费设计素材——菜鸟图库 https://…

Java Websocket实现即时通讯功能入门教程

近年来&#xff0c;即时通讯&#xff08;Instant Messaging&#xff09;已经成为了人们日常生活中不可缺少的一部分。而Java Websocket技术则提供了一种简便高效的方式来实现即时通讯功能。本文将介绍如何使用Java Websocket来实现即时通讯&#xff0c;并提供具体的代码示例。 …

Vue自定义hook函数

hook 本质是一个函数&#xff0c;可以把 setup 函数中使用的 Composition API 进行封装。 hook 类似于 Vue2 中的 mixin 混合。 自定义 hook 的优势&#xff1a;复用代码&#xff0c;让 setup 中的逻辑更加清晰易懂。 自定义hook函数&#xff1a; 1、在 src 目录下创建 hooks…

android 签名文件生成

1.生成keystore文件 keytool -genkey -v -keystore app.keystore -alias app -keyalg RSA -keysize 2048 -validity 36500 -genkey: 生成一个新的秘钥对 -v:显示生成过程 -keystore&#xff1a;指定生成的文件名字 -alias:签名文件别名 -keyalg:指定算法名字 -keysize:指…

【测绘程序设计】——坐标换带与高程投影

测绘工程中经常遇到 “坐标换带” 与 “高程投影” 问题,前者是在改变投影的分带号——即投影的中央子午线,通过 “(x,y)->(B,L)->(x,y)” 进行;而后者则是为减小投影变形(高程投影变短、高斯投影变长,详情可参考博客《测绘综合能力》真题易错本 第(37)条)通过平…

跨境电商与本土文化融合:推动全球商业合作

随着全球经济的日益一体化&#xff0c;跨境电商成为推动全球商业合作的重要力量。在这个数字化时代&#xff0c;跨境电商不仅在商品流通上起到了桥梁作用&#xff0c;更在文化交流方面发挥了积极的作用。本文将深入探讨跨境电商如何与本土文化融合&#xff0c;以及这种融合如何…

GItLab项目导入到HBuilderX中,下载TortoiseGit 安装

1.项目拉取 选择你要下载的项目,选master下完后内部在切换想要分支,一般选http下载,下图我选的是ssh下载 选择导入,git导入 复制上地址 如果提示这个点击确定 找到下图位置安装 2.TortoiseGit 下载安装 TortoiseGit 官网下载地址&#xff1a;Download – TortoiseGit – Wind…

做一个类似东郊到家的上门服务类系统有哪些功能?

上门服务系统是一款便捷的技师接单、上门提供理疗服务的软件。我们拥有优秀的开发团队&#xff0c;为您量身定制解决方案&#xff0c;价格合理&#xff0c;用心服务。 预约上门&#xff1a;该功能是预约上门推拿理疗按摩系统软件小程序APP的核心功能。消费者通过系统预约下单&a…

第8章 电信支撑网

文章目录 8.1 信令网 201 8.1.1 信令与信令网的基本概念 201 8.1.2 No.7信令及信令网 203 8.1.3 我国的信令网 206 8.2 数字同步网 207 8.2.1 数字同步网的基本概念 207 8.2.2 网同步的方式 209 8.2.3 中国数字同步网 210 8.3 电信管理网 212 8.3.1 电信网络管理 21…