python之可迭代对象、迭代器、生成器

他们是什么

  • 什么是可迭代对象iterable
    凡是实现了 __iter__ 方法的对象就是可迭代对象。例如 listtuple
  • 什么是迭代器 iterator
    是指自身不仅实现了 __iter__ 方法,同时实现了 __next__方法。且__iter__ 方法返回的是对象本身
  • 什么是生成器 generator
    生成器是一种特殊的迭代器,自动实现了 __iter____next__方法。我们常说的生成器就是带有yield的函数。

他们之间的联系

iterable 包含 iterator 包含 generator
有些iterable对象,比如list,是将所有的值都存储在内存中。而有些就不是,比如 iterator
所有的 iterable 都是可以用for循环来取的其中的值的。for循环的工作原理就是先通过调用 iter方法来获取一个iterator,然后通过不停的调用next 方法来取得所有的值的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容