|python中的迭代器是个啥?

文章图片

文章图片
迭代器是什么?
说道python的迭代器之前 , 不得不提到的就是在远古时期的C语言的时代 , 如果想要对一个数组进行遍历 , 只能使用for循环 。
但是这样通常会有很多问题 , 首先就是对不同容器类型遍历的写法不一致 , 另外就是循环条件偶尔写错了报错 , 还得找半天bug , 要知道我们只是想简简单单的遍历一个列表啊 , 有这么痛苦吗?
接着我们的主角迭代器就登场了!
就以python举例 , 不管是字典形式 , 列表形式 , 元组形式都可以使用for语句一个搞定 。
为什么要使用迭代器
那么迭代器帮助我们解决的问题也就显而易见了 , 我们面对可迭代对象再也不用记那么多不同的写法了 , 只需要一个就可以了 , 极大程度的让我们更加专注于写bug(不是)
怎么构建一个迭代器
相信 看完上面就已经知道 , 迭代器相当于系统把不同的可迭代对象都帮你做成了一个统一的接口 , 那么可迭代对象背后到底是什么呢?
迭代当然不需要列表老大亲自来执行了 , 而是派出自己的小弟来执行 , 那么这个小弟是谁呢?
首先可以使用dir查看一下我们可迭代对象拥有的方法和属性 。
就是其中的__iter__方法 , 简单来说如果有这个方法 , 那么他就是可迭代的对象 。
那么此时此刻一个可迭代的对象进入for语句之后会做什么呢?会将__iter__放法的返回当做一个对象 , 再调用其中的__next__方法 , 也就是真正的迭代器 , 可以通过iter方法获得列表的小弟__iter__方法 , 从而直接调用__next__方法 。
从本质上来说如果一个对象 , 有__iter__和__next__方法那么这一定就是一个可迭代的对象 。
下面我就构建了一个可以反向输出的可迭代对象 。
【|python中的迭代器是个啥?】
- 太空中的真菌毒素是否危害宇航员健康?科学家:尚不明确
- 科学家:人类只是一片巨大的“空洞虚无”中的一粒微尘!
- 文艺评论丨科幻题材崛起与Z世代审美观照中的双向奔赴
- 华为|华为原董事长孙亚芳:我们有些销售人员眼睛中的客户就像猎物!
- LG|时隔数年,LG gram 14依旧是商务本中的“种子选手”
- Python|十年质保、3400MB/S!279元买512GB NVMe高速固态硬盘
- 格力电器|不要再说Python难了,按照这个学习路线,四周速成Python
- Python|华为再造新车!问界M7揭下外企的遮羞布,余承东:超越百万豪车
- Python|OPPO A96可以升级ColorOS 12了,我看谁还说入门机只管生不管养?
- 为何能被赞誉安全,盘点苹果iOS中的隐私保护措施
