23.Python迭代器

作者: 赵明嗯 | 来源:发表于2020-07-27 22:03 被阅读0次

迭代器是包含__next__的对象,当调用__next__方法时,迭代器返回其下一个值。迭代器并不等同于可迭代对象(可用于for循环的对象,例如序列、字典等),当迭代器包含了__iter__方法,并通过而__iter__方法返回自身时,迭代器才是一个可以用于for循环进行遍历的可迭代对象(__iter__方法返回值类型为迭代器)。

>>> class A:
    def __init__(self):
        self.a=1
    def __next__(self):
        self.a+=self.a
        return self.a
>>> ite=A()
>>> next(ite)
2
>>> next(ite)
4
>>> next(ite)
8
>>> ite.__next__
<bound method A.__next__ of <__main__.A object at 0x0000000002C3ACF8>>
>>> ite.__next__()
16

示例代码即实现了一个迭代器。通过内置函数next()每调用一下迭代器ite,它便会依次返回下一个值。
注意:这时候实现的迭代器还不是可迭代对象,因为还不包含__iter__方法,明天可以举一个将迭代器改造成可迭代对象的例子。

相关文章

  • 23.Python迭代器

    迭代器是包含__next__的对象,当调用__next__方法时,迭代器返回其下一个值。迭代器并不等同于可迭代对象...

  • 迭代器

    本节实验我们将为大家讲解迭代器,主要介绍 5 种常见迭代器:输入、输出迭代器,前向逆向迭代器,双向迭代器和随机迭代...

  • 迭代器与生成器

    迭代(iteration)与可迭代(iterable) 迭代器 迭代器协议(iterator protocol) ...

  • 10.迭代器与生成器

    一、迭代器 1). 迭代器概述 类比Java中的迭代器,参考迭代器模式https://www.jianshu.co...

  • 9 ES6 迭代器、生成器

    1、Iterator迭代器 ->遵循迭代模式思想实现,分为内部迭代器、外部迭代器,聚焦点:添加迭代接口 (1).迭...

  • C++boolan part3_week4

    1. 迭代器 1.1 迭代器的种类 使用随机访问迭代器的容器:array, vector,deque使用双向迭代器...

  • 迭代器模式

    内部迭代器和外部迭代器 简单地讲,内部迭代器就是类似 forEach 的迭代器,其内部迭代逻辑已经制定好,只要传入...

  • vector erase的用法

    正向迭代器: 反向迭代器:

  • 10 python中的迭代器和生成器

    1 迭代器 遵循了迭代器协议的对象为迭代器,即内部调用iter()方法转化成的对象为成迭代器。 1.1 迭代器的特...

  • 第7章迭代器模式

    第7章迭代器模式 7.1 jQuery中的迭代器 7.2 实现自己的迭代器 7.3 内部迭代和外部迭代 1内部迭代...

网友评论

    本文标题:23.Python迭代器

    本文链接:https://www.haomeiwen.com/subject/rcbtrktx.html