page contents

说一下python迭代器和生成器?

轩辕小不懂 发布于 2022-03-08 14:55
阅读 417
收藏 0
分类:Python开发
3233
Nen
Nen
- 程序员

介绍python生成器需要先介绍可迭代对象和迭代器。


可迭代对象(Iterable Object),简单的来理解就是可以使用 for 来循环遍历的对象。比如常见的 list、set和dict。


可迭代对象具有__iter__ 方法,用于返回一个迭代器,或者定义了 getitem 方法,可以按 index 索引的对象(并且能够在没有值时抛出一个 IndexError 异常),因此,可迭代对象就是能够通过它得到一个迭代器的对象。所以,可迭代对象都可以通过调用内建的 iter() 方法返回一个迭代器。


生成器其实是一种特殊的迭代器,不过这种迭代器更加优雅。它不需要再像上面的类一样写__iter__()和__next__()方法了,只需要一个yiled关键字。

请先 登录 后评论