实现一个可迭代对象的类,他能迭代出给定范围内的所有素数
pn = PrimeNumbers(1,30)
for k in pn:
print k
将该类的__iter__方法实现成生成器函数,每次yield返回一个素数
def f():
print 'in f(),1'
yield 1
print 'in f(),2'
yield 2
print 'in f() 3'
yield 3
g = f()
print g.next()
print g.next()
print g.next() #最后会抛出一个StopIteration
for x in g:
print x
class PrimeNumbers:
def __init__(self,start,end):
self.start = start
self.end = end
def isPrimeNum(self,k):
for i in xrange(2,k):
if k % i==0:
return False
return Tru
def __iter__(self):
for k in xrange(self.start,self.end+1):
if self.isPrimeNum(k):
yield k
for x in PrimeNumbers(1,100):
print k
如何使用生成器函数实现可迭代对象
最新推荐文章于 2024-09-04 10:31:20 发布