迭代器,可迭代对象,生成器区别

Posted geoffreyone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器,可迭代对象,生成器区别相关的知识,希望对你有一定的参考价值。

  • 迭代对象 :实现__iter__方法,返回迭代器。不需要显示继承Iterable,
  • 迭代器: 实现_iter__方法,__next__方法,不需要显示继承Iterator
from collections import Iterable,Iterator

def generator():
    for i in range(10):
        yield i
st = ‘‘
li = []
di = {}
ge = generator()

字符串,字典,列表,集合,生成器,都是可迭代对象

isinstance(st, Iterable), isinstance(li, Iterable), isinstance(di, Iterable), isinstance(ge, Iterable)

结果为:

(True, True, True, True)

字符串,字典,列表,集合都不是迭代体,生成器是迭代体

isinstance(st,Iterator), isinstance(li, Iterator), isinstance(di, Iterator), isinstance(ge, Iterator)

结果为:

(False, False, False, True)

以上是关于迭代器,可迭代对象,生成器区别的主要内容,如果未能解决你的问题,请参考以下文章

代码详解生成器迭代器

迭代器,可迭代对象,生成器区别

迭代器,生成器

Python---迭代器,生成器,列表推导式

Python中迭代器和生成器的区别与联系

迭代器与装饰器