A Standard
Steven Taschuk
staschuk at telusplanet.net
Tue May 27 16:17:25 EDT 2003
Quoth Andrew Koenig:
> Greg> Andrew Koenig wrote:
[...]
> Greg> And in Python, every sequence (i.e. something that
> Greg> implements __getitem__) can be iterated over, so
> Greg> every algorithm that operates on iterables will
> Greg> also operate on sequences.
>
> You mean it is impossible for a user-defined type to implement
> __getitem__ without also implementing __iter__?
This is not so, but in a sense it might as well be: iterating over
an object will use __iter__ if present, but if not, will fall back
on __getitem__ with integer indices.
>>> class Seq(object):
... def __getitem__(self, index):
... return index
...
>>> it = iter(Seq())
>>> it.next()
0
>>> it.next()
1
Seqs do not implement __iter__, but are iterable.
[...]
--
Steven Taschuk staschuk at telusplanet.net
"Telekinesis would be worth patenting." -- James Gleick
More information about the Python-list
mailing list