首页 > 编程语言 >python 3 内嵌函数和闭包

python 3 内嵌函数和闭包

时间:2023-10-02 16:12:14浏览次数:46  
标签:闭包 内嵌 fun1 函数 fun2 python funy def

内嵌函数:本质是 函数里又嵌套一个函数

def fun1():   

    print('fun1()在被调用')        def fun2():                print('fun2()在被调用')     fun2()    #调用fun2()   fun1() fun1()正在被调用 fun2()正在被调用 内嵌函数的作用域在外部函数之内,即fun2只能在fun1之内调用。         

闭包是函数里面嵌套函数,

外层函数返回里层函数,

这种情况称之为闭包  闭包是概念,不是某种函数类型,和递归的概念类似,

就是种特殊的函数调用;  闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁  

def fun4(a):

     print(a)      def fun5():           print(a,11)      return fun5       #调用不执行    = fun4(3)   闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。 def funx(x):     def funy(y):         return * y     return funy   funx(5) <function funx.<locals>.funy at 0x0000006AB7FDD7B8>   funx(4)(8   32

我们发现,funx是一个函数,包括一个参数x。

比较特殊的地方是这个函数里面又定义了一个新函数funy,这个新函数里面的一个变量正好是外部函数funx的参数。

也就是说,外部传递过来的参数已经和funy函数绑定到一起了。

我们可以把x看做新函数的一个配置信息,配置信息不同,函数的功能就不一样了,也就是能得到定制之后的函数。

   

 

标签:闭包,内嵌,fun1,函数,fun2,python,funy,def
From: https://www.cnblogs.com/Laoniu21cn/p/17740011.html

相关文章

  • 笨办法学Python3 习题4 变量和命名
    知识点:变量名需要字母或下划线开头,由字母,下划线,数字组成,数字不能开头变量名不能有特殊符号,不能和关键字,保留字相同应尽量简洁,方便理解记忆变量名区分大小写myName和myname是不同的变量名需要遵循命名约定(网上补充)常见变量名约定:Pascal命名法,所有单词的首字母大写如......
  • 笨办法学Python3 习题2 注释和 # 号
    知识点:#为注释,可为代码注释,运行后代码无错误的情况下,终端不会显示找错误的方法从最后行开始倒着找养成良好的习惯,注释时要简洁易懂,代码字符串与符号之间最好用空格隔开来,看着更干净清楚......
  • 笨办法学Python3_习题0
    目标:安装python解释器和编辑器困难:作者书中建议用python3.6.1版本已停止下载书中用的Atom编辑器已停运,改用VScode编辑器下载时又非常慢该把解释器和编辑器下载到电脑哪个盘好?解决方法:改用Python3.6.8windows版本下载编辑器的链接复制后改成http//这段改/   ......
  • python 机器学习 继续训练模型
    您可以使用以下方法反复训练机器学习模型:增量学习:这是一种在现有模型上继续训练的方法。在增量学习中,您可以将新数据集与现有数据集合并,然后使用这些数据重新训练模型。这种方法的优点是可以避免从头开始训练模型,从而节省时间和计算资源。但是,需要注意的是,如果新数据与旧数据有很大......
  • 安装TD后Python模块中定义的类
    两个知识点 1,TD模块中定义的类可继承自外部,比如object2,模块不是类,其中可定义类。那么,如何查询该模块儿定义的继承自外部的类呢?特别是对于TD而言 A,TD中的类可用dir(略)可用inspect模块查询类 结果是['AbsTime','Actors','App','Attribute','AttributeData','Attrib......
  • Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫
    前面有分享过requests采集Behance作品信息的爬虫,这篇带来另一个版本供参考,使用的是无头浏览器selenium采集,主要的不同方式是使用selenium驱动浏览器获取到页面源码,后面获取信息的话与前篇一致。Python爬虫源码,Behance作品图片及内容采集爬虫附工具脚本!理论上,几乎所有的页面内......
  • vscode 配置 python 中快捷输入 if __name__ == '__main__':
    vscode不会像pycharm可以代码自动联想出 if__name__=='__main__': 操作点击左下角齿轮按钮——用户代码片段  然后输入python搜索出现python.json 然后将一下代码输入后重启就可以了 代码如下:"Printtoconsole":{"prefix":"main","body":[......
  • python批量插入图片到一个pdf中
    importosfromPILimportImagefromPyPDF2importPdfFileMerger#防止字符串乱码os.environ['NLS_LANG']='SIMPLIFIEDCHINESE_CHINA.UTF8'classAllImagesToPdf:  def__init__(self):    self.imgs_path="imgs" #将所有的图片放到此文件夹中  ......
  • python基础:文本(字符串)
    一前言环境:python3.10win10在python中,我们要表示的每个数据都是归属于某个类型,这个类型要么是python已经帮我我们写好的即内置的数据类型,如int、float、List、Dict等,要么来自于第三方库,要么我们自己定义一个类型在python中文本是属于str类型二用str类型来表示文本字符串相......
  • Python内存管理&垃圾回收机制
    Python内存管理&垃圾回收机制引用计数器为主,标记清除和分代回收为辅(循环垃圾回收器)+缓存机制一、引用计数器1、环状双向链表refchain在python程序创建的任何对象都会放在rechain双向链表中。name='七落'age=18hobby=['篮球','美女']#内部会创建一些数......