Python闭包的使用方法
作者:程序员班长 发布时间:2022-11-27 07:45:07
标签:Python,闭包,使用
1.闭包的定义和使用
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
1.函数嵌套
2.内部函数使用外部函数的变量或参数
3.外部函数返回了内部函数
'''
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
1.函数嵌套
2.内部函数使用外部函数的变量或参数
3.外部函数返回了内部函数
'''
# 定义一个闭包
def outer(): # 外部函数
n=1
def inner(): # 内部函数
print(n)
# 外函数返回内函数的引用(不用带括号哈)
return inner
outer() # 调用外函数不会执行内函数
# inner() # 不能直接调用内函数
ret=outer() # 把内函数的引用给ret
print(ret)
ret()
# 闭包的使用
def person(name):
def say(msg):
print(f'{name} say: {msg}')
return say
tom=person('Tom')
rose=person('Rose')
tom('Hello')
rose('World')
2.闭包内函数修改外函数定义的变量(加nonlocal)
def outer():
n=1
def inner():
nonlocal n # 不加会报错,列表、字典、元祖不用加
n=n+10
print(n)
print(n) # 输出1
return inner
fun=outer()
fun() # 输出11
fun() # 输出21
来源:https://kantlee.blog.csdn.net/article/details/122684641


猜你喜欢
- 操作:输入带分页的地址,去掉最后面的数字,设置一下起始页数和终点页数功能:下载对应页码的所有页面并储存为HTML文件,以当前时间命名代码:#
- 1、引言在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor。本文记录了确定gsExtra
- hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。我们可以用hints来实现:  
- 前言本文主要给大家介绍关于python中__init__、__new__和__call__方法的相关内容,分享出来供大家参考学习,下面话不多
- 今天碰到一个很有意思的问题,需要将普通的 Unicode字符串转换为 Unicode编码的字符串,如下:将 \\u9500\\u552e 转
- 本文介绍了layer弹出子iframe层父子页面传值的实现方法,分享给大家,具体如下:父页面获取子页面元素格式:$("#ifram
- 连接 Redisimport redisc连接方式:redis提供了2个方法1:StrictRedis:实现大部分官方的命令2:Redis:
- 最近在用python做数据统计,这里总结了一些最近使用时查找和总结的一些小技巧,希望能帮助在做这方面时的一些童鞋。有些技巧是很平常的用法,平
- 如下所示:#简单来说 LabelEncoder 是对不连续的数字或者文本进行编号from sklearn.preprocessing imp
- 我们公司网站的项目都是采用utf-8编码格式的,一天,发现部分电脑打开网站的一个页面是空白页,要在IE下重新选择编码才显示正常。我们网站的编
- 关于mysql效率优化一般通过以下两种方式定位执行效率较低的sql语句。通过慢查询日志定位那些执行效率较低的 SQL 语句,用 --log-
- 借助zookeeper可以实现服务器的注册与发现,有需求的时候调用zookeeper来发现可用的服务器,将任务均匀分配到各个服务器上去.这样
- 本文研究的主要是Django开发中的signal 的相关内容,具体如下。前言在web开发中, 你可能会遇到下面这种场景:在用户完成某个操作后
- 分析当前用户下所有表的记录总数保证好用!begin dbms_utility.analyze_schema(user,'COMPUT
- jquery获取img的src值实例介绍 https://www.jb51.net/article/154746.htm获取: $(&quo
- 一、下载xlsx插件npm i xlsx二、通过element-ui组件的upload组件上传文件<el-upload
- 本文实例讲述了Django restframework 框架认证、权限、限流用法。分享给大家供大家参考,具体如下:概述Django Rest
- 本文实例为大家分享了java正则表达式工具类的具体代码,供大家参考,具体内容如下import com.google.common.base.
- 问题你想使用一个简单的REST接口通过网络远程控制或访问你的应用程序,但是你又不想自己去安装一个完整的web框架。解决方案构建一个REST风
- 1、打印九九乘法表#只打印结果for i in range(1,10): for j in range(1,i+1): &nbs