[Python-ideas] Propagating StopIteration value [PS. #2]
Jan Kaliszewski
zuo at chopin.edu.pl
Thu Oct 11 01:38:21 CEST 2012
W dniu 11.10.2012 01:29, Jan Kaliszewski napisał(a):
>> The goal described by the OP could be reached with a wrapper
>> generator -- something like this:
> [snip]
>
> PS. A more convenient version (you don't need to repeat yourself):
[snip].
PS2. Sorry for flooding, obviously it can be simpler:
import collections
def genfrom(iter_factory, *args):
final_value = None
def catching(iterable):
nonlocal final_value
final_value = yield from iterable
args = [catching(arg.iterable) if isinstance(arg, genfrom.this)
else arg
for arg in args]
yield from iter_factory(*args)
return final_value
genfrom.this = collections.namedtuple('propagate_from_this',
'iterable')
Cheers.
*j
More information about the Python-ideas
mailing list