Message121166
> "iterable" is described as "A container object
> capable of returning its members one at a time."
That wording is confusing. I'll fix it.
> Likewise, "and objects of any classes you define
> with an __iter__() or __getitem__() method." is
> wrong because __getitem__ method is not relate to
> iterable
That wording is correct. Sequences are automatically
iterable even if they don't define __iter__. For example:
>>> class A:
... def __getitem__(self, i):
... if i > 10:
... raise IndexError(i)
... return i * 100
>>> list(A())
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
If you're curious, the details are in the PyObject_GetIter() function in http://svn.python.org/view/python/branches/release27-maint/Objects/abstract.c?view=markup . |
|
Date |
User |
Action |
Args |
2010-11-13 23:51:25 | rhettinger | set | recipients:
+ rhettinger, methane, docs@python |
2010-11-13 23:51:25 | rhettinger | set | messageid: <1289692285.61.0.112137812002.issue10410@psf.upfronthosting.co.za> |
2010-11-13 23:51:22 | rhettinger | link | issue10410 messages |
2010-11-13 23:51:22 | rhettinger | create | |
|