Python迭代器与装饰器
2017-08-02 09:47
351 查看
一、列表生成式
在之前的学习中生成一个list,采用下列方式
二、生成器
在Python中,一边循环一边计算的机制称为生成器
定义生成器的方式:
(1)列表生成式的[]改为()
使用for循环进行调用即可
(2)定义yield关键字
如果一个函数定义中包含yield关键字,则这个函数为一个生成器
注意:yield的原理是,在每次进行迭代调用next()时执行,遇到yield语句返回,下次执行时从上次返回的yield语句处继续执行。
三、迭代器
(一)可以直接使用for循环的数据类型有以下几种:
1.集合数据类型:如list、tuple、dict、set、str等
2.生成器:包括生成器和带yield的函数
我们将这些可以直接使用for循环的对象统称为可迭代对象,使用isinstance()进行判断
而可以被next()函数调用并不断返回下一个值的对象则称为迭代器,使用isinstance()进行判断
可迭代对象转化为生成器使用iter()函数
注意:Python的for循环本质上就是通过不断调用next()函数实现的
四、装饰器
本质上来说:装饰器是函数,去为其他函数添加附加功能,在不改变原函数的情况下
(一)有以下重要原则:
1.不能修改被装饰函数的源代码
2.不能修改被装饰函数的调用方式
(二)如何实现一个装饰器
1.理解函数即变量
2.高阶函数
a,把一个函数名当做实参传给另一个函数(在不锈钢被装饰函数源代码的情况下为其添加功能)
b.返回值中包含函数名(不修改函数的调用方式)
3.嵌套函数
示例
在之前的学习中生成一个list,采用下列方式
list(range(1,10))但是,现在有这样一个需求,生成一个list[1,4,9,16,25,36,49],如果采用for循环的方式会显得比较繁琐,这时候就用到列表生成式,一句话搞定。
[x*x for x in range(1,11)]
二、生成器
在Python中,一边循环一边计算的机制称为生成器
定义生成器的方式:
(1)列表生成式的[]改为()
使用for循环进行调用即可
(2)定义yield关键字
如果一个函数定义中包含yield关键字,则这个函数为一个生成器
注意:yield的原理是,在每次进行迭代调用next()时执行,遇到yield语句返回,下次执行时从上次返回的yield语句处继续执行。
三、迭代器
(一)可以直接使用for循环的数据类型有以下几种:
1.集合数据类型:如list、tuple、dict、set、str等
2.生成器:包括生成器和带yield的函数
我们将这些可以直接使用for循环的对象统称为可迭代对象,使用isinstance()进行判断
而可以被next()函数调用并不断返回下一个值的对象则称为迭代器,使用isinstance()进行判断
可迭代对象转化为生成器使用iter()函数
注意:Python的for循环本质上就是通过不断调用next()函数实现的
四、装饰器
本质上来说:装饰器是函数,去为其他函数添加附加功能,在不改变原函数的情况下
(一)有以下重要原则:
1.不能修改被装饰函数的源代码
2.不能修改被装饰函数的调用方式
(二)如何实现一个装饰器
1.理解函数即变量
2.高阶函数
a,把一个函数名当做实参传给另一个函数(在不锈钢被装饰函数源代码的情况下为其添加功能)
b.返回值中包含函数名(不修改函数的调用方式)
3.嵌套函数
示例
import time def timer(func): def deco(): start_time = time.time() func() stop_time = time.time() print("the func time") return deco def test1(): print("in the test1") @timer #test1 = timer(test1) test1()本文章参考了廖雪峰老师的Python教程
相关文章推荐
- python迭代器、生成器、装饰器
- python的迭代器、生成器、装饰器
- python︱函数、for、if、_name_、迭代器、防范报错、类定义、装饰器
- Python之迭代器、生成器、装饰器和递归
- python学习笔记四 迭代器,生成器,装饰器(基础篇)
- python05 - 迭代器,生成器,装饰器
- Python生成器、迭代器、装饰器
- python 学习2:生成器,迭代器,装饰器
- [python自学笔记]生成器、迭代器、装饰器
- python学习-Day15-python生成式和生成器、迭代器、装饰器
- 循序渐进Python3(四) -- 装饰器、迭代器和生成器
- 装饰器、生成器、迭代器、及python中内置函数的使用
- python 学习2:生成器,迭代器,装饰器
- 函数嵌套,内置函数,闭包函数,迭代器,生成器,装饰器
- python基础之生成器迭代器
- python装饰器 练习
- Python 装饰器
- Python 迭代器工具包【推荐】
- 深入理解Python装饰器
- Python_Day_5装饰器、字符串格式化、序列化、内置模块、生成器、迭代器之篇