python使用生成器实现可迭代对象
本文实例为大家分享了python使用生成器实现可迭代对象的具体代码,供大家参考,具体内容如下
案例分析:
实一个可迭代对象的类,它能迭代出给定范围内所有的素数:
pn=Number(1,30)
forkinpn:
print(k)
结果为:2,3,5,7,11,13,17,19,23,29
如何解决这个问题?
将该类的__iter__方法实现成生成器函数,每次yield返回一个素数
#!/usr/bin/python3 classNumber(object): def__init__(self,start,end): self.start=start self.end=end #判断一个数字是否是素数 defget_num(self,k): ifk>=2: foriinrange(2,k): ifk%i==0: returnFalse returnTrue def__iter__(self): forkinrange(self.start,self.end+1): ifself.get_num(k): #是素数yield出去 yieldk if__name__=='__main__': num=Number(2,30) foriinnum: print(i)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。