本文摘自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 [] 与 list() 哪个快?为什么快?快多少呢?
Python和access的区别
Python语言有什么特点
Python数据可视化利器matplotlib详解
Python做并行计算可以吗
Python编程快速上手第六章实践项目参考code
Python怎么让程序重复运行
Python中随机取list中的元素方法
Python里面def是什么意思
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python实现用生成器实现可迭代对象的方法