zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    jQuery初级篇
    DOM初级篇
    CSS基础篇
    javascript 初级篇
    HTML 基础篇
    Oracle文章中常用数据表的描述
    Oracle视图基础
    Oracle序列简单应用
    Oracle关联查询关于left/right join的那点事
    赋值和算术运算符
  • 原文地址:https://www.cnblogs.com/volcao/p/8733423.html
Copyright © 2011-2022 走看看