您可以使用简单的元类使您的类对象可迭代。
class IterRegistry(type): def __iter__(cls): return iter(cls._registry)class Person(object): __metaclass__ = IterRegistry _registry = [] def __init__(self, name): self._registry.append(self) self.name = name
(我也进行了更改
__registry,
_registry以使其更容易从元类访问)。然后,
>>> p = Person('John')>>> p2 = Person('Mary')>>> for personobject in Person:... print personobject...<person.Person object at 0x70410><person.Person object at 0x70250>


