您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页python实现用生成器实现可迭代对象的方法

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

来源:爱够旅游网

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

案例分析:

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

pn = Number(1, 30)

for k in pn:

print(k)

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

如何解决这个问题?

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


#!/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)

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务