Posso iterar em uma aula em Python?
Eu tenho uma classe que acompanha suas instâncias em uma variável de classe, algo assim:
class Foo:
by_id = {}
def __init__(self, id):
self.id = id
self.by_id[id] = self
O que eu gostaria de poder fazer é iterar sobre as instâncias existentes da classe. Eu posso fazer isso com:
for foo in Foo.by_id.values():
foo.do_something()
mas ficaria mais limpo assim:
for foo in Foo:
foo.do_something()
Isso é possível? Eu tentei definir um método de classe__iter__
, mas isso não funcionou.