可迭代对象 是任何你可以循环遍历的东西(列表、字符串、字典);迭代器 是执行实际迭代的对象,一次产生一个值并追踪其位置。这种区别是 Python 中 for 循环工作原理的基础。
两个协议
text
Iterable → has __iter__() → returns an iterator
Iterator → has __next__() → returns the next value (and __iter__ returning itself)
for 循环的实际工作原理
python
x [, , ]:
(x)
it = ([, , ])
:
:
x = (it)
(x)
StopIteration:
