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代码的单行注释使用什么符号

Python中map是什么意思

Python适合后端开发么

Python之从列表推导到zip()函数的五种技巧

Python程序文件的扩展名称是什么

excel文件读取的两种方式

Python在普通工作中的应用有那些

Python模拟微博登陆的方法介绍(附代码)

map在Python中什么意思

如何完整写一个爬虫框架

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




打赏

取消

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

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

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

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

评论

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