Skip to main content
 首页 » 编程设计

python之使数据结构在python中可迭代

2025年05月04日17lidabo

因此,我在网上进行了一些查找并通读了文档,但我很难找到如何执行此操作。我正在制作一款冒险游戏。我有一个级别类(包含一堆房间)和一个房间类。我希望能够执行以下操作。

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 教程。