概念
- 迭代器 & 迭代器对象:两者是同一概念,实现了__iter__()、__next__()的实例对象,即可称为迭代器或迭代器对象。
- 可迭代对象:使用iter()方法可以返回一个迭代器的实例对象。由于iter()方法是调用实例对象的__iter__()方法,因此可迭代对象都实现了__iter__()方法,且返回一个迭代器。
- 生成器:使用yield关键字的函数(暂时没见过类和、实例)。该函数返回一个迭代器。因此生成器一定是迭代器,但迭带起不一定是生成器。
- yield V.S. yield from: yield 是返回一个迭代器,而yield from XXX是将可迭代对象处理成一个迭代器,然后后返回。
随手记
- 使用yield的函数,不是函数对象,而是生成器对象
- yield from 语法不存在Python 2种,只存在python 3中
- 生成器对象有send()方法,第一次只能传入none参数ß
网友评论