迭代器和可迭代对象有什么区别和联系呢?
如题 迭代器迭代器(`iterator`)必须提供`.__next__()`方法
`.__next__()`执行要么返回下一个迭代器
要么抛出`StopIteration`异常以标识迭代完成
可迭代对象
实现了迭代器协议的对象,是`Iterable`
`list`、`dict`、`str`等都是可迭代对象
提供了`.__iter__()`方法,每次执行都会创建一个**初始的**迭代器。
python的内部工具(`for`语句,`sum()`函数,`list()`函数等)使用迭代器协议访问对象
同一个可迭代对象生成的可迭器**互不影响**,但是具有**惰性**
页:
[1]