[Python-Dev] Terminology of "Iterable" and "Iterator"

Raymond Hettinger python at rcn.com
Wed Jul 25 16:55:11 CEST 2007

The docs do make a distinction and generally follow the definitions given in the glossary for the tuturial.

In the case of iter(collection), I prefer the current wording because the target object need not support __iter__, it is sufficient 
to supply a sequential __getitem__ method.


----- Original Message ----- 
From: "Calvin Spealman" <ironfroggy at gmail.com>
To: "Python Mailing List" <python-dev at python.org>
Sent: Wednesday, July 25, 2007 5:18 AM
Subject: [Python-Dev] Terminology of "Iterable" and "Iterator"

>I got into a discussion about this, which made me think it would make
> sense to formalize a distinction between "iterable" and "iterator". To
> nearly any python developer I talk with, we can define them as:
> iterable - An object which can be passed to the built-in iter()
> function, which returns an iterator.
> iterator - An object with a .next() method, which is used to invoke
> the iteration. An iterator _should_ also be an iterable, and will
> nearly always return itself as its own iterator.
> Now, the current documentation makes no distinction, and we see this
> in the docstring for iter(), which is curious:
>    iter(collection) -> iterator
> This might indicate that it is using "collection" where I would say
> "iterable". Also, the same docstring makes mention of something being
> an iterator _or_ a sequence, so I also should bring up that it may be
> antiquated, yes?
> -- 
> Read my blog! I depend on your acceptance of my opinion! I am interesting!
> http://ironfroggy-code.blogspot.com/
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/python%40rcn.com 

More information about the Python-Dev mailing list