1. 程式人生 > >迭代器,可迭代物件,生成器區別

迭代器,可迭代物件,生成器區別

  • 迭代物件 :實現__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)