我试图创建一个迭代器类,它将给我一个路径抛出一个树形图,每次迭代它将根据某些条件返回下一步。
所以我在这里查看了如何做到这一点: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>
任何猜测我做错了什么?
答案 0 :(得分:2)
虽然Path_Iter
已经是迭代器,但__iter__
- 方法应返回self
:
def __iter__(self):
return self
接下来,要迭代迭代器,您需要某种循环。例如。要打印内容,您可以将迭代器转换为列表:
print list(xyz.travel_path_iterator(article_name))
答案 1 :(得分:0)
使用生成器功能:
m