Tim Johnson wrote: > I need to get up to speed on iterators. I learned python 1.5~ via > Alan G's book ... > For an example, I've written a subclass of dict where keys are kept in > a ordered fashion is a list called __keys: > > #Here is my items function: > def items(self): > """ Return all pairs in order of addition""" > return [(key,self.__dict[key]) for key in self.__keys] > > #And here is my iteritems function (currently does exactly the same thing) > def iteritems(self): > """ At this implementation, does exactly the same thing as > method items()""" > for key in self.__keys: > yield (key,self.__dict[key])
I think you have it right. Your two methods don't do the same thing - items() returns a list of key, value pairs; iteritems() returns a generator which yields key, value pairs. This is the correct behaviour. Kent -- http://www.kentsjohnson.com _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor