Python 三大利器:迭代器、生成器、装饰器
2023-09-14 09:01:28 时间
Python 中的三大利器包括: 迭代器、生成器、装饰器,利用好它们才能开发出最高性能的代码,涉及到的内置模块 itertools 提供迭代器相关的操作。
迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器:
创建一个迭代器
把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__() 。
如果你已经了解的面向对象编程,就知道类都有一个构造函数,Python 的构造函数为 __init__(), 它会在对象初始化的时候执行。
__iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。
__next__() 方法(Python 2 里是 next())会返回下一个迭代器对象。
实例:创建一个返回数字的反向迭代器,初始值为N,逐步递减 1:
class Descend():
def __init__(self,N):
self.N=N
self.a=0
def __iter__(self):
return self
def __next__(self):
while self.a<self.N:
self.N-=1
return self.N+1
raise StopIteration
>>> [i for i in Descend(10)]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>>
StopIteration
StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。
生成器
装饰器
相关文章
- python中矩阵的转置怎么写_Python 矩阵转置的几种方法小结
- python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
- python常见运维脚本_Python运维常用脚本[通俗易懂]
- Python 获取窗口句柄,模拟鼠标点击
- Python元组_python元组的定义方式
- python全局变量赋值_Python全局变量和局部变量[通俗易懂]
- 【说站】Python yield实现迭代器协议
- Python标识符的命名规则,下列哪些是对的?_python标识符不能使用关键字
- Python的正则表达式_python正则表达式例子
- Python学习:定义函数的默认参数和可变参数
- Python -- 之Phantomjs网页截图
- Python读取文件时出现UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position xx: 解决方案[通俗易懂]
- python判断文件后缀_Python 判断文件后缀是否被篡改
- python hexdump_笨办法学 Python · 续 练习 26:`hexdump`
- python type error是什么意思_Python 报错 TypeError:’DoesNotExist’对象不可调用
- python使用opencv如何保存图片_OpenCV Python 保存图片
- 用Python自动化操作Excel制作报表,真的是太方便啦!!!
- Python 插件虚拟环境支持
- 【7】python_matplotlib 输出(保存)矢量图方法;画图时图例说明(legend)放到图像外侧;Python_matplotlib图例放在外侧保存时显示不完整问题解决
- 【测试开发】python系列教程:Python 推导式
- 新手学Python可行吗?需要什么基础?(新手学python可行吗?需要什么基础)
- 软件测试|一文教你学会Python文件 I/O 操作
- 异动分析(四)利用Python计算指标贡献度
- Python开发系列课程(3) – 分支结构详解编程语言
- Python迭代器详解编程语言
- 安装Python MySQL驱动之快速指南(python安装mysql驱动)
- Python在连接MSSQL数据库中的应用(python连mssql)
- Linux 下 Python 升级:轻松完成升级操作(linux下升级python)
- python使用any判断一个对象是否为空的方法
- Python迭代用法实例教程