Hello, Below 6 working way to implement __iter__ for a container here simulated with a plain inner list. Sure, the example is a bit artificial ;-)
1. __iter__ returns a generator _expression_ 2. __iter__ *is* a generator 3. __iter__ returns a generator (this one is a bit weird, i guess) 4. __iter__ returns self, its own iterator via next() 5. __iter__ returns an external iterator object 6. __iter__ returns iter() of a collection built just on time (this one is really contrived) Also, one can always traverse the collection (already existing or built then) itself if it not quasi-infinite (no __iter__ at all). "There should be one-- and preferably only one --obvious way to do it" http://www.python.org/dev/peps/pep-0020/ I understand some ways fit given use cases better -- or worse. But it's difficult to find the best one, or even a proper one in a given case. Also, generation and iteration are rather abstract notions. And it's too much variety for me. I am lost in this field. I would enjoy a commented and examplified overview. Denis -- ________________________________ la vita e estrany spir.wikidot.com _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor