• Python:如何使用生产器函数实现可迭代对象


    注:了解生产器函数,查询: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)
  • 相关阅读:
    C#按键打开文件选择对话框,并把选择好的路径保存/显示到textBox
    C#按钮打开浏览器,网址
    阅读笔记05
    进度条14
    冲刺4--10
    冲刺3
    冲刺2
    课堂训练书本
    进度条13
    课堂水王2
  • 原文地址:https://www.cnblogs.com/volcao/p/8733423.html
Copyright © 2020-2023  润新知