Python 中生成器与迭代器的区别是什么?
发布于 2022-09-21 08:52:55
关注者
0
被浏览
15
3 个回答
-
先说答案,生成器是一种特殊的迭代器。 迭代器的类中需要保证有两个方法,\_\_iter\_\_和\_\_next\_\_方法,其中iter方法要返回类的实例,next返回下一个结果,当循环结束之后,会触发一个stopxxxx(具体忘了)的异常。这样的类的实例对象就是迭代器对象。而生成器是在定义函数的时候,使用了yield关键字,python内部会自动调用genrator方法(具体单词不记得了,好像是这么写),调用这个方法以后,会自动声明两个方法iter哥next,这两个方法和迭代器的一样,所以说生成器满足了迭代器的所有要求,所以生成器上一种特殊的迭代器,不同的是,生成器会节约内存。纯手打,好累。。。
-
迭代器可以记录当前的位置,迭代器对象要有两个方法,\_\_next\_\_和\_\_iter\_\_方法 生成器属于特殊的迭代器 字数太多了懒得打,百度去吧……
-
生成器可以理解成是自定义的迭代器