Python闭包的使用
1.闭包的定义和使用
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
1.函数嵌套
2.内部函数使用外部函数的变量或参数
3.外部函数返回了内部函数
# @Author : Kant
# @Time : 2022/1/23 17:19'''
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:1.函数嵌套2.内部函数使用外部函数的变量或参数3.外部函数返回了内部函数
'''# 定义一个闭包
def outer(): # 外部函数n=1def inner(): # 内部函数print(n)# 外函数返回内函数的引用(不用带括号哈)return innerouter() # 调用外函数不会执行内函数
# inner() # 不能直接调用内函数
ret=outer() # 把内函数的引用给ret
print(ret)
ret()# 闭包的使用
def person(name):def say(msg):print(f'{name} say: {msg}')return saytom=person('Tom')
rose=person('Rose')
tom('Hello')
rose('World')
2.闭包内函数修改外函数定义的变量(加nonlocal)
# @Author : Kant
# @Time : 2022/1/23 17:55def outer():n=1def inner():nonlocal n # 不加会报错,列表、字典、元祖不用加n=n+10print(n)print(n) # 输出1return innerfun=outer()
fun() # 输出11
fun() # 输出21
Python闭包的使用相关推荐
- 深入理解Python闭包概念
闭包并不只是一个Python中的概念,在函数式编程语言中应用较为广泛.理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想. 1.概念介绍 首先看一下维基上对闭 ...
- Python闭包及其作用域
Python闭包及其作用域 关于Python作用域的知识在python作用域有相应的笔记,这个笔记是关于Python闭包及其作用域的详细的笔记 如果在一个内部函数里,对一个外部作用域(但不是全局作用域 ...
- Python 闭包详解
在函数编程中经常用到闭包.闭包是什么,它是怎么产生的及用来解决什么问题呢.给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个 ...
- Python闭包与延迟绑定
Python闭包 1.什么是闭包,闭包必须满足以下3个条件: 必须有一个内嵌函数 内嵌函数必须应用外部函数的变量 外部函数的返回值必须是内嵌函数 举个栗子 # 嵌套函数但不是闭包 def nested ...
- python闭包的延迟绑定_浅析Python的闭包和延迟绑定
def multipliers(): return [lambda x : i * x for i in range(4)] print [m(2) for m in multipliers()] 你 ...
- Python闭包与装饰器
Python闭包与装饰器 一.闭包 函数是一个对象,所以可以对象的形式作为某个函数的结果返回.函数执行完后内部变量将会被回收.在闭包中,由于内部函数存在对外部函数的变量的引用,所以即使外部 ...
- python 闭包和装饰器
python 闭包和装饰器 一.闭包 闭包:外部函数FunOut()里面包含一个内部函数FunIn(),并且外部函数返回内部函数的对象FunIn,内部函数存在对外部函数的变量的引用.那么这个内部函数F ...
- python闭包的应用场景_Python闭包函数定义与用法分析
python函数的闭包怎么理解小编憎恨离别.但若,离别能让你牵挂,小编愿意离开你. 1. 闭包的概念 首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释: 复制代码代码如下: 在计算机科学中,闭 ...
- Python闭包基本介绍与作用
目录 1.闭包基本介绍 1.1 外函数的返回值是内函数的引用 1.2 外函数把临时变量绑定给内函数 1.3 闭包中内函数修改外函数局部变量 2.闭包的作用 1.闭包基本介绍 "闭包" ...
- [转载] 根据Python常见面试题来谈谈 Python 闭包
参考链接: Python闭包 这里根据我们平常见到的一些Python常见面试题来跟大家说一下关于Python闭包的相关问题! 题目: 1.什么是闭包?闭包的定义? 2.手写一个简单的闭包 3.变量作用 ...
最新文章
- python如何次传参给线程_python如何给线程中的函数传参?
- 单个接口添加超时时间_SpringBoot使用Guava令牌桶对接口限流
- TI DSP入门学习
- LINUX下用脚本实现JDK+TOMCAT
- 在恰当的地方使用MongoDB的WriteConcern.SAFE参数
- docker 安装mongodb集群,多台服务器
- react 更新input 默认值setfieldsvalue_值得收藏的React知识点查漏补缺
- 200000000021 键盘监听事件
- dcdc芯片效率不高的原因_影响DC-DC转换器效率的主要因素
- ceph的数据存储之路(7) -----PG 的状态机和peering过程
- CAS号:2417213-21-7以(ZPS-PVPA)为催化剂载体
- 2008年最后的感动
- Echarts图表设置x轴y轴均随滚轮滚动缩+放 区域缩放
- java科目二踩线原理,右倒车入库总踩线?是因为没有看到这些“秘诀”
- 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
- Buffon's Needle
- 中国春节和犹太人的春节
- Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[store_wa
- 空间统计:Moran's I(莫兰指数)
- 如何下载门头沟区卫星地图高清版大图