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.