第十课 Python中的函数(2)
闭包
闭包的定义需要满足以下三个条件:
- 在一个外函数中定义了一个内函数
- 内函数里运用了外函数的临时变量
- 并且外函数的返回值是内函数的引用
闭包它是一种现象,一般情况下,外函数执行完毕时,临时变量会被释放。但此时,外函数发现自己的临时变量会在将来被使用,所以外函数结束的时候,在返回内函数引用的同时,将外函数的临时变量与内函数进行绑定。这也是为什么当外函数结束,但内函数仍然可以使用外函数临时变量的原因。
装饰器
装饰器 (@) 是一种语法糖,主要用于在函数或类的基础上添加一些可重用的额外功能。从应用开发的角度来看的话,我们使用装饰器来对我们的应用代码进行功能性扩展和包装,以提高代码的可重用性和可维护性。
就是在不改变函数源代码得情况下为函数添加新得功能
注意:
test()函数未调用得时候,装饰器就已经执行
推导式
推导式介绍
Python 中有一种特有的语法,就是推导式(又称为解析式)。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。
共有三种推导:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
例如:生成一个[0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0] 的列表
有列表如:li = [6, 2, 6, 7, -15, 8, -17, -10, -15, -4]。
需求:将li列表 <0 的数进行平方 生成新列表
字典与集合推导式:
注意:
没有元组推导式,(i for i in range(10)) 返回的是 generator object
作业