如何使用生成器函数实现迭代对象,生成器和迭代对象区别-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

什么是生成器,

含有yield 的函数就是一个 generator,它和普通函数不同,生成一个 generator 看起来像函数调用,但不会执行任何函数代码,直到对其调用 next()
(在 for 循环中会自动调用 next())才开始执行。虽然执行流程仍按函数的流程执行,但每执行到一个 yield 语句就会中断,并返回一个迭代值,下次执行时从 yield 的下一个语句继续执行。看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。

该问题的解决方法:
在该类的__iter__方法实现生成器函数,每次yield一个素数,就可以解决了

素数:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数

代码的结果是:

如何使用生成器函数实现迭代对象,生成器和迭代对象区别-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

如果看到这里,你还是不明白什么是生成器什么是迭代器,可以看这篇文章: