Serhiy Storchaka added the comment:

This issue is related to the behavior of other composite iterators.

>>> from copy import copy
>>> it = map(ord, 'abc')
>>> list(copy(it))
[97, 98, 99]
>>> list(copy(it))
[]
>>> it = filter(None, 'abc')
>>> list(copy(it))
['a', 'b', 'c']
>>> list(copy(it))
[]

The copy is too shallow. If you consume an item from one copy, it is 
disappeared for the original.

Compare with the behavior of iterators of builtin sequences:

>>> it = iter('abc')
>>> list(copy(it))
['a', 'b', 'c']
>>> list(copy(it))
['a', 'b', 'c']
>>> it = iter(list('abc'))
>>> list(copy(it))
['a', 'b', 'c']
>>> list(copy(it))
['a', 'b', 'c']

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29897>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to