def __instances(self):
for instance in self.__instances_cache:<EOL><INDENT>yield instance<EOL><DEDENT>for instance in self.__instances_original:<EOL><INDENT>self.__instances_cache.append(instance)<EOL>yield instance<EOL><DEDENT>
Cache instances, allowing generators to be used and reused. 
            This fills a cache as the generator gets emptied, eventually
            reading exclusively from the cache.