Python中“iterable”、“iterator”和“iteration”最基本的定义是什么?
我已经阅读了多个定义,但我无法确定确切的含义,因为它仍然不会下沉。
有人可以帮我用外行术语的3个定义吗?
迭代 是一个通用术语,用于一个接一个地获取某物的每一项。每当您使用循环(显式或隐式)来遍历一组项目时,这就是迭代。
在 Python 中, iterable 和 iterator 具有特定的含义。
可 迭代 对象是具有__iter__返回 迭代器 的方法的对象,或者定义了__getitem__可以从零开始获取顺序索引的方法(并IndexError在索引不再有效时引发 )。因此, 可迭代 对象是您可以从中获取 迭代器 的对象。
__iter__
__getitem__
IndexError
迭代器 是具有next(Python 2) 或__next__(Python 3) 方法的对象。
next
__next__
每当你在 Python 中使用for循环、或map、列表推导等时,next都会自动调用该方法从 迭代器 中获取每个项目,从而完成 迭代 的过程。
for
map
开始学习的好地方是本教程的迭代器部分和标准类型页面的迭代器类型部分。了解基础知识后,请尝试函数式编程 HOWTO 的迭代器部分。