Message248657
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 in less info in setstate:
>>> c = cycle(iter('de'))
>>> c.__setstate__((['a', 'b', 'c'], 0))
>>> ''.join(next(c) for i in range(20)) # next 20 values |
|
Date |
User |
Action |
Args |
2015-08-15 21:32:35 | rhettinger | unlink | issue24874 messages |
2015-08-15 21:23:07 | rhettinger | set | recipients:
+ rhettinger |
2015-08-15 21:23:07 | rhettinger | set | messageid: <1439673787.63.0.997592700002.issue24874@psf.upfronthosting.co.za> |
2015-08-15 21:23:07 | rhettinger | link | issue24874 messages |
2015-08-15 21:23:06 | rhettinger | create | |
|