python实现用生成器实现可迭代对象的方法


本文摘自php中文网,作者小云云,侵删。

本文主要为大家详细介绍了python如何使用生成器实现可迭代对象,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

案例分析:

实一个可迭代对象的类,它能迭代出给定范围内所有的素数:

pn = Number(1, 30)

for k in pn:

print(k)

结果为:2,3,5,7,11,13,17,19,23,29

如何解决这个问题?

将该类的__iter__方法实现成生成器函数,每次yield返回一个素数


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/usr/bin/python3

class Number(object):

 def __init__(self, start, end):

  self.start = start

  self.end = end

    

 # 判断一个数字是否是素数

 def get_num(self, k):

  if k >= 2:

   for i in range(2, k):

    if k % i == 0:

     return False

   return True

   

 def __iter__(self):

  for k in range(self.start, self.end+1):

   if self.get_num(k):

    # 是素数yield出去

    yield k

      

if __name__ == '__main__':

 num = Number(2, 30)

 for i in num:

  print(i)

以上就是python实现用生成器实现可迭代对象的方法的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中sep是什么意思

Python自学文件操作

Python解释器安装在哪里

Python如何读取excel表数据

Python迭代模式实例详解

Python中线程与进程的区别与优劣

flask-migrate扩展的用法介绍(附代码)

Python如何绘制降水图

Python 列表推导式使用注意事项

linux和Python先学哪个

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...