美文网首页程序员哲思
24.Python可迭代对象

24.Python可迭代对象

作者: 赵明嗯 | 来源:发表于2020-07-28 21:58 被阅读0次

前一篇讲了迭代器,但是迭代器还不能用于for循环进行迭代。今天这一篇文章通过在迭代器里加入__iter__方法,将其改造成可迭代对象。

class A:
    def __init__(self):
        self.a=1
    def __next__(self):
        self.a+=self.a
        return self.a
    def __iter__(self):
        return self
>>> its=A()
>>> for i in its:
    print(i)
    if i>5:
        break   
2
4
8

由于__iter__方法被规定返回一个迭代器,这里我们使用它返回迭代器本身,来完成迭代过程。注意,这个可迭代对象应用到for循环中时,需要设定一个条件通过break跳出循环,不然会一直运行下去,因为这个可迭代对象是无穷的。
下面的例子可以看出,未加入__iter__方法时,迭代器是不可迭代的。

>>> class A:
    def __init__(self):
        self.a=1
    def __next__(self):
        self.a+=self.a
        return self.a
>>> its=A()
>>> for i in its:
    print(i)
    if i>5:
        break
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    for i in its:
TypeError: 'A' object is not iterable

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=h82m1wln20i9

相关文章

  • 24.Python可迭代对象

    前一篇讲了迭代器,但是迭代器还不能用于for循环进行迭代。今天这一篇文章通过在迭代器里加入__iter__方法,将...

  • Python进阶 - 高性能计算之协程

    迭代器 可迭代对象 什么是可迭代对象 可迭代对象就是对象的类中实现了__iter__方法的对象。对于可迭代对象,可...

  • 迭代器

    一、迭代器可迭代的(可迭代对象):可迭代对象都是可迭代的。如:str、list、dict、tuple、文件对象等等...

  • 迭代机制

    可迭代对象、迭代器、生成器、生成式区别 a. 可迭代对象: 一个对象能够被迭代的使用,这个对象就是可迭代对象 b....

  • 小结-Python-可迭代、迭代器和生成器的区别

    可迭代对象 可迭代对象指的是定义了_ _ iter _ _ 方法的对象,调用该方法会返回一个迭代器对象。 可迭代对...

  • 生成器与迭代器

    一:可迭代对象(Iterable) 1、什么叫可迭代对象? 2、python中那些是可迭代对象 二:迭代器(Ite...

  • 可迭代对象、迭代器、生成器

    可迭代对象 --> 迭代器 --> 生成器; 可迭代对象:实现了__iter__()方法的对象,该方法返回迭代对象...

  • python迭代器、生成器与装饰器

    可迭代对象与迭代器 可迭代对象 可以直接作用于for循环的对象统称为可迭代对象,代码中可以通过isinstance...

  • python中可迭代对象、迭代器、生成器的关系

    可迭代对象与迭代器 1)可迭代对象包含迭代器。 2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个...

  • python生成器、迭代器、可迭代对象

    可迭代对象 迭代器 生成器 1.可迭代对象 可以被for循环遍历的对象成为可迭代对象,其中包括list、str、t...

网友评论

    本文标题:24.Python可迭代对象

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