python | 迭代器与生成器

2017-12-28  本文已影响17人  君子月满楼

概念

  1. 迭代器 & 迭代器对象:两者是同一概念,实现了__iter__()、__next__()的实例对象,即可称为迭代器或迭代器对象。
  2. 可迭代对象:使用iter()方法可以返回一个迭代器的实例对象。由于iter()方法是调用实例对象的__iter__()方法,因此可迭代对象都实现了__iter__()方法,且返回一个迭代器。
  3. 生成器:使用yield关键字的函数(暂时没见过类和、实例)。该函数返回一个迭代器。因此生成器一定是迭代器,但迭带起不一定是生成器。
  4. yield V.S. yield from: yield 是返回一个迭代器,而yield from XXX是将可迭代对象处理成一个迭代器,然后后返回。

随手记

  1. 使用yield的函数,不是函数对象,而是生成器对象
  2. yield from 语法不存在Python 2种,只存在python 3中
  3. 生成器对象有send()方法,第一次只能传入none参数ß
上一篇下一篇

猜你喜欢

热点阅读