首页 > 解决方案 > 使用步骤构造迭代器

问题描述

我正在关注这个: 构建一个基本的 Python 迭代器

我有这个代码的一个版本,写成一个生成器函数,它可以工作。

现在我想将生成器函数转换为一个类。

这就是我所拥有的:

class Frange(object):
    def __init__(self, value, end=None, step=1.0):

        if end is None:
            self.start, self.end = 0.0, value
            self.step = step
        else:
            self.start = value
            self.end = end
            self.step = step

    def __iter__(self):
        return self

    def __next__(self):
        if self.start < self.end:
            return self.start

for n in Frange(0.5, 2.5, 0.5):
    print(n)

无论我尝试什么,我都无法弄清楚在哪里\如何实施该步骤。我要么得到无限的对象流,要么得到 0.5 个。

我可以在 PythonTutor 中看到init部分工作正常。

标签: pythonpython-3.xclassiteratorpython-3.6

解决方案


推荐阅读