如何使用迭代器类?

时间:2015-12-27 22:31:11

标签: python iterator

我试图创建一个迭代器类,它将给我一个路径抛出一个树形图,每次迭代它将根据某些条件返回下一步。

所以我在这里查看了如何做到这一点:Build a Basic Python Iterator

这是我到目前为止写的:

def travel_path_iterator(self, article_name):
    return Path_Iter(article_name)


class Path_Iter:

    def __init__(self,article):
        self.article=article

    def __iter__(self):
        return next(self)

    def __next__(self):
        answer= self.article.get_max_out_nb()
        if answer != self.article.get_name():
            return answer
        else:
            raise StopIteration

但是我打电话给这堂课有问题。 我的输出总是:

<__main__.Path_Iter object at 0x7fe94049fc50>

任何猜测我做错了什么?

2 个答案:

答案 0 :(得分:2)

虽然Path_Iter已经是迭代器,但__iter__ - 方法应返回self

def __iter__(self):
    return self

接下来,要迭代迭代器,您需要某种循环。例如。要打印内容,您可以将迭代器转换为列表:

print list(xyz.travel_path_iterator(article_name))

答案 1 :(得分:0)

使用生成器功能:

m
相关问题