因此,我在网上进行了一些查找并通读了文档,但我很难找到如何执行此操作。我正在制作一款冒险游戏。我有一个级别类(包含一堆房间)和一个房间类。我希望能够执行以下操作。
l = Level()
for room in l:
#following code here
这对我来说似乎很简单,但是我找不到实现自定义迭代器的正确过程。这可能是一个简单的答案,但我在网上找不到它。非常感谢任何帮助!
请您参考如下方法:
使用__iter__带有迭代器生成器。例如
def __iter__(self):
for r in rooms:
yield r
迭代器生成器基本上是用于实现迭代器的伪方法。请注意,不要求生成器使用 for 循环。它可以根据需要使用构造的任意组合(if、for、while 等)。基本上,您只需记住,调用者将按照您“调用”yield 的顺序获取元素,并且迭代将在方法执行时结束。
参见 this section Python 教程。
