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.