本文主要为大家详细介绍了python如何使用生成器实现可迭代对象,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。
案例分析:
实一个可迭代对象的类,它能迭代出给定范围内所有的素数:
pn = Number(1, 30)
for k in pn:
立即学习“Python免费学习笔记(深入)”;
本系统经过多次升级改造,系统内核经过多次优化组合,已经具备相对比较方便快捷的个性化定制的特性,用户部署完毕以后,按照自己的运营要求,可实现快速定制会费管理,支持在线缴费和退费功能财富中心,管理会员的诚信度数据单客户多用户登录管理全部信息支持审批和排名不同的会员级别有不同的信息发布权限企业站单独生成,企业自主决定更新企业站信息留言、询价、报价统一管理,分系统查看分类信息参数化管理,支持多样分类信息,
0
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)以上就是python实现用生成器实现可迭代对象的方法的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号