python 如何使用生成器函数实现可迭代对象?

生成器对象和迭代器对象相似,支持 next()
生成器使用关键字 yield
生成器对象也是可迭代对象
使用生成器函数的的生成器的__iter__()返回自身

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)

你可能感兴趣的:(python 如何使用生成器函数实现可迭代对象?)