是否可以在没有单独的迭代器对象的情况下进行对象迭代?

Rom*_*cer 1 python iteration iterator

我正在写类似于数组的东西,但有一些调整.当然,它应该是可迭代的.但我真的不想将另一个对象作为迭代器,并且'对于my in myObject.generator()'对我来说似乎太笨重了.有没有办法让一个生成器函数适用于'for my in myObject'?

Mar*_*ers 7

只需为该__iter__方法使用生成器函数:

def __iter__(self):
    for value in self._values:
        yield value
Run Code Online (Sandbox Code Playgroud)

这将产生一个新的发电机迭代器对象每次 iter()被调用的对象(这是在for当您使用对象的循环).