7、什么是 iterable/iterator/generator
Iterable 可迭代对象
列表、元祖、字符串、字典、文件。
指1.实现了 iter 方法的对象, iter() 返回一个 Iterator, Iterator 实现了next() (在 Python 3 更名为 next) 方法.
2.如果对象实现了 getitem 方法也是可以的. 如果能成功调用 iter(这个对象) 并返回一个迭代器, 那么 '这个对象' 就是Iterable.
迭代器(Iterator)
任意对象,只要定义了next(Python2) 或者next方法,它就是一个迭代器。iter返回迭代器自身。迭代器就是实现了工厂模式的对象
generator,生成器也是一种迭代器,但是你只能对其迭代一次。这是因为它们并没有把所有的值存在内存中,而是在运行时生成值。你通过遍历来使用它们,要么用一个“for”循环,要么将它们传递给任意可以进行迭代的函数和结构。
参考:https://foofish.net/iterators-vs-generators.html
网友评论