Given a class that keeps a registry of its Objects:
class Person(object): __registry = [] def __init__(self, name): self.__registry.append(self) self.name = name
How would I make the following code work (without using Person.__registry):
for personobject in Person: print personobject
While researching I found a hint that one could go for a __metaclass__ with a __getitem__-method. Any ideas how this would look like?
You can make your class object iterable with a simple metaclass.
(I have also changed
__registryto_registryto make it easier to access from the metaclass). Then,