首页 > 其他 > 详细

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

时间:2019-08-30 14:21:26      阅读:52      评论:0      收藏:0      [点我收藏+]
 

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

案例:

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

    • 将该类的__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)

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

原文:https://www.cnblogs.com/valorchang/p/11434610.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!