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.

questionAnswers(4)

yourAnswerToTheQuestion