呵呵哒5

导航

Python可迭代对象,迭代器,生成器的区别

三者简要关系图

 

 

1)可迭代对象包含迭代器。
2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。
3)定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法。

4)生成器是一种特殊的迭代器,生成器自动实现了“迭代器协议”(即__iter__和next方法),不需要再手动实现两方法。

5)生成器在迭代的过程中可以改变当前迭代值,而修改普通迭代器的当前迭代值往往会发生异常,影响程序的执行。

6)具有yield关键字的函数都是生成器

 

posted on 2020-07-23 09:55  呵呵哒5  阅读(27)  评论(0)    收藏  举报