Kann ich eine Klasse in Python durchlaufen?

Ich habe eine Klasse, die ihre Instanzen in einer Klassenvariablen verfolgt, etwa so:

class Foo:
    by_id = {}

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

Ich möchte in der Lage sein, über die vorhandenen Instanzen der Klasse zu iterieren. Das kann ich machen mit:

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

aber es würde besser so aussehen:

for foo in Foo:
    foo.do_something()

Ist das möglich? Ich habe versucht, eine Klassenmethode zu definieren__iter__, aber das hat nicht funktioniert.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage