Czy mogę powtarzać klasę w Pythonie?

Mam klasę, która śledzi swoje wystąpienia w zmiennej klasowej, coś takiego:

class Foo:
    by_id = {}

    def __init__(self, id):
        self.id = id
        self.by_id[id] = self

To, co chciałbym zrobić, to iterować istniejące instancje klasy. Mogę to zrobić za pomocą:

for foo in Foo.by_id.values():
    foo.do_something()

ale wyglądałoby to tak ładnie:

for foo in Foo:
    foo.do_something()

czy to możliwe? Próbowałem zdefiniować metodę klasy__iter__, ale to nie zadziałało.

questionAnswers(4)

yourAnswerToTheQuestion