问题10:如何使用生产器函数实现可迭代对象

mac2022-06-30  21

问题10:如何使用生产器函数实现可迭代对象

 

注:了解生产器函数,查询:Python:生成器函数

案例:

需求:实现一个可迭代的类,它能迭代出给定范围内所有素数;思路:1)构造一个类(如:PrimeNumbers()),给定两个参数,如:1、100,来限定搜索的范围;2)对实例(如:pn)进行迭代,得到目标数据;

方案:使用生成器函数,来实现可迭代对象;

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

#在问题8~9中,实现可迭代对象的方法:通过实现一个包含next方法的迭代器对象的类,来实现可迭代对象;

pn = PrimeNumbers(1, 100)for k in pn:    print(k)

 

代码:

class PrimeNumbers: def __init__(self, start, end): self.start = start self.end = end def isPrimeNum(self, k): if k < 2: return False 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.isPrimeNum(k): yield k for x in PrimeNumbers(1, 100): print(x)

转载于:https://www.cnblogs.com/valorchang/p/11434610.html

最新回复(0)