Message248662
When a cycle object has fully consumed its input iterable, __reduce__ method uses the returns a space-inefficient result when space-efficient alternative is available.
# Current way of restoring a cycle object with excess info in setstate:
>>> c = cycle(iter('de'))
>>> c.__setstate__((['a', 'b', 'c', 'd', 'e'], 1))
>>> ''.join(next(c) for i in range(20)) # next 20 values
'deabcdeabcdeabcdeabc'
# The same result can be achieved with less information:
>>> c = cycle(iter('de'))
>>> c.__setstate__((['a', 'b', 'c'], 0))
>>> ''.join(next(c) for i in range(20)) # next 20 values
'deabcdeabcdeabcdeabc' |
|
Date |
User |
Action |
Args |
2015-08-15 21:32:26 | rhettinger | set | recipients:
+ rhettinger |
2015-08-15 21:32:26 | rhettinger | set | messageid: <1439674346.53.0.142034370838.issue24874@psf.upfronthosting.co.za> |
2015-08-15 21:32:26 | rhettinger | link | issue24874 messages |
2015-08-15 21:32:26 | rhettinger | create | |
|