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闭包的使用相关推荐

  1. 深入理解Python闭包概念

    闭包并不只是一个Python中的概念,在函数式编程语言中应用较为广泛.理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想. 1.概念介绍 首先看一下维基上对闭 ...

  2. Python闭包及其作用域

    Python闭包及其作用域 关于Python作用域的知识在python作用域有相应的笔记,这个笔记是关于Python闭包及其作用域的详细的笔记 如果在一个内部函数里,对一个外部作用域(但不是全局作用域 ...

  3. Python 闭包详解

    在函数编程中经常用到闭包.闭包是什么,它是怎么产生的及用来解决什么问题呢.给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个 ...

  4. Python闭包与延迟绑定

    Python闭包 1.什么是闭包,闭包必须满足以下3个条件: 必须有一个内嵌函数 内嵌函数必须应用外部函数的变量 外部函数的返回值必须是内嵌函数 举个栗子 # 嵌套函数但不是闭包 def nested ...

  5. python闭包的延迟绑定_浅析Python的闭包和延迟绑定

    def multipliers(): return [lambda x : i * x for i in range(4)] print [m(2) for m in multipliers()] 你 ...

  6. Python闭包与装饰器

    Python闭包与装饰器 一.闭包       函数是一个对象,所以可以对象的形式作为某个函数的结果返回.函数执行完后内部变量将会被回收.在闭包中,由于内部函数存在对外部函数的变量的引用,所以即使外部 ...

  7. python 闭包和装饰器

    python 闭包和装饰器 一.闭包 闭包:外部函数FunOut()里面包含一个内部函数FunIn(),并且外部函数返回内部函数的对象FunIn,内部函数存在对外部函数的变量的引用.那么这个内部函数F ...

  8. python闭包的应用场景_Python闭包函数定义与用法分析

    python函数的闭包怎么理解小编憎恨离别.但若,离别能让你牵挂,小编愿意离开你. 1. 闭包的概念 首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释: 复制代码代码如下: 在计算机科学中,闭 ...

  9. Python闭包基本介绍与作用

    目录 1.闭包基本介绍 1.1 外函数的返回值是内函数的引用 1.2 外函数把临时变量绑定给内函数 1.3 闭包中内函数修改外函数局部变量 2.闭包的作用 1.闭包基本介绍 "闭包" ...

  10. [转载] 根据Python常见面试题来谈谈 Python 闭包

    参考链接: Python闭包 这里根据我们平常见到的一些Python常见面试题来跟大家说一下关于Python闭包的相关问题! 题目: 1.什么是闭包?闭包的定义? 2.手写一个简单的闭包 3.变量作用 ...

最新文章

  1. python如何次传参给线程_python如何给线程中的函数传参?
  2. 单个接口添加超时时间_SpringBoot使用Guava令牌桶对接口限流
  3. TI DSP入门学习
  4. LINUX下用脚本实现JDK+TOMCAT
  5. 在恰当的地方使用MongoDB的WriteConcern.SAFE参数
  6. docker 安装mongodb集群,多台服务器
  7. react 更新input 默认值setfieldsvalue_值得收藏的React知识点查漏补缺
  8. 200000000021 键盘监听事件
  9. dcdc芯片效率不高的原因_影响DC-DC转换器效率的主要因素
  10. ceph的数据存储之路(7) -----PG 的状态机和peering过程
  11. CAS号:2417213-21-7以(ZPS-PVPA)为催化剂载体
  12. 2008年最后的感动
  13. Echarts图表设置x轴y轴均随滚轮滚动缩+放 区域缩放
  14. java科目二踩线原理,右倒车入库总踩线?是因为没有看到这些“秘诀”
  15. 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
  16. Buffon's Needle
  17. 中国春节和犹太人的春节
  18. Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[store_wa
  19. 空间统计:Moran's I(莫兰指数)
  20. 如何下载门头沟区卫星地图高清版大图

热门文章

  1. Google提出的新型激活函数:Swish
  2. 采购退料单新增无法获取单价
  3. RabbitMQ-从基础到实战(3)— 消息的交换(上)
  4. 在全局中调用类的静态成员函数
  5. android除去标题栏或全屏
  6. Unity3d 去掉exe版本的边框
  7. AB1601读触摸芯片ASC0106的IIC波形图
  8. C++ Primer 5th笔记(chap 18 大型程序工具)多重继承下的类作用域
  9. Hyperledger Fabric 智能合约实战 (3) 安装fabric
  10. C++ Primer 5th笔记(9)chapter9 顺序容器 string