python学习day12 函数Ⅳ (闭包&内置模块)
闭包
- 闭包形成条件
- 函数嵌套
- 内层有数据被外部引用
- 应用场景: - 装饰器/SQLAIchemy源码
 
- 函数可以作为变量 
- 函数可以作为参数 
- 函数可以作为返回值 - def bar():
 def inner():
 print(123)
 return inner
 v = bar()
 v()
 
- 闭包:为一个函数创建一块区域(内部变量供自己使用),为他以后执行提供数据 - # 基本格式
 def func(name):
 def inner():
 print(name)
 return inner v1 = func('alex')
 v1()
 v2 = func('eric')
 v2()
 - #练习
 # 第一题
 name = 'alex'
 def base():
 print(name) def func():
 name = 'eric'
 base() func() # {name=eric, } # 第二题
 name = 'alex' def func():
 name = 'eric'
 def base():
 print(name)
 base()
 func() # 第三题
 name = 'alex' def func():
 name = 'eric'
 def base():
 print(name)
 return base
 base = func()
 base()
经典例题
info = []
def func(i):
    def inner():
        print(i)
    return inner
for item in range(10):
    info.append(func(item))
info[0]()
info[1]()
info[4]()
python学习day12 函数Ⅳ (闭包&内置模块)的更多相关文章
- python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域
		复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参: -- 形参:在函数定义时()中出现的参数 ... 
- python学习8—函数之高阶函数与内置函数
		python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ... 
- python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
		python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ... 
- python学习笔记之heapq内置模块
		heapq内置模块位于./Anaconda3/Lib/heapq.py,提供基于堆的优先排序算法 堆的逻辑结构就是完全二叉树,并且二叉树中父节点的值小于等于该节点的所有子节点的值.这种实现可以使用 h ... 
- 从0开始的Python学习007函数&函数柯里化
		简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ... 
- python学习Day10 函数的介绍(定义、组成、使用)
		今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ... 
- python中对 函数 闭包 的理解
		最近学到 函数 闭包的时候,似懂非懂.迷迷糊糊的样子,很是头疼,今天就特意查了下关于闭包的知识,现将我自己的理解分享如下! 一.python 闭包定义 首先,关于闭包,百度百科是这样解释的: 闭包是指 ... 
- Python学习之函数参数
		上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ... 
- Python学习笔记: 闭包
		闭包的基本定义 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数.这个被引用的自由变 ... 
随机推荐
- Bootstrap-table 部分浏览器显示不出来
			一.问题 近日,写了一个ASP.Net项目,但是bootstrap-table在别人的电脑上显示不出来,在自己的电脑上能显示,有些浏览器也是能显示,但部分浏览器就是显示不出来.找了很多原因,最后有个老 ... 
- 基础环境系列:MySQL8.0.12
			机型与版本:windows10(64-bits) Mysql环境配置:mysql8.0.12 一.MySQL安装 Mysql的安装有两种方法,一种是通过.msi一种是通过压缩包.穷呢,大家就老实下社区 ... 
- 南京邮电大学 JavaA期末复习要点总结
			南京邮电大学 JavaA复习要点: Chap1 入门 1. Java应用程序开发过程教材P14~P15 Chap 2 基本语法 1. 标识符的命名规则教材P19 字母下划线美元符号开头,除 ... 
- Skywalking部署常见问题以及注意事项
			Skywalking部署常见问题以及注意事项 Intro SkyWalking 创建与2015年,提供分布式追踪功能.从5.x开始,项目进化为一个完成功能的Application Performanc ... 
- 使用mysqlhelper可以连接mysql
			已经验证OK通过. 参考地址: https://www.oschina.net/code/snippet_579976_48967 https://files.cnblogs.com/files/mo ... 
- 【记录】Xmind8 Pro 激活
			摘要 XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生.作为一款有效提升工作和生活效率的生产力工具,受到全球百千万用户的青睐. [有能力请支持正版] 在xmin下载xmi ... 
- 系统功能调用Windows操作系统原理实验
			一.实验目的 1.熟悉操作系统的系统功能调用. 2.掌握用C语言实现系统功能调用的方法和步骤. 3.掌握利用10H号功能调用(BIOS的显示I/O功能调用)来实现对屏幕的操作与控制. 二.实验内容 1 ... 
- Chinese word segment based on character representation learning  论文笔记
			论文名和编号 摘要/引言 相关背景和工作 论文方法/模型 实验(数据集)及 分析(一些具体数据) 未来工作/不足 是否有源码 问题 原因 解决思路 优势 基于表示学习的中文分词 编号:1001-908 ... 
- 面向对象___str__和__repr__
			老师的博客关于此知识点 http://www.cnblogs.com/Eva-J/articles/7351812.html#_label7 __str__和__repr__ 改变对象的字符串显示__ ... 
- 关于出现Specified VM install not found: type Standard VM, name jdk1.5.0_04问题的解决办法
			问题出现背景: 今天把原来电脑中的jdk版本由1.7换到了1.8,,重新在Eclipse中配置环境后出现了此问题 问题解决办法: 在你的项目中,选中ant文件,右键>>Run As > ... 
