<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 14, 2014 at 6:38 PM, Chris Angelico <span dir="ltr"><<a href="mailto:rosuav@gmail.com" target="_blank">rosuav@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Thu, Aug 14, 2014 at 7:35 PM, Makoto Kuwata <<a href="mailto:kwatch@gmail.com">kwatch@gmail.com</a>> wrote:<br>
> I understand that::<br>
><br>
> yield from xs<br>
><br>
> is syntax suger of::<br>
><br>
> for x in xs:<br>
> yield x<br>
<br>
</div>Not just. It's like that for simple cases, but there are edge cases<br>
that are much more complicated to do manually, and are simply taken<br>
care of. Best would be to read the PEP itself:<br>
<br>
<a href="http://www.python.org/dev/peps/pep-0380/" target="_blank">http://www.python.org/dev/peps/pep-0380/</a><br>
<br>
ChrisA<br></blockquote><div><br></div><div>Thank you. It seems too complicated...</div><div>I understand that 'val = yield from xs' is completely different from::</div><div><br></div><div> for x in xs:</div><div>
ret = yield x</div><div> val = x</div><div><br></div><div>Return value is propagated by StopIteration, like:<br></div><div><br></div><div> it = iter(xs)</div><div> try:</div><div> while 1:<br></div><div> yield next(it)</div>
<div> except StopIteration as ex:</div><div> val = ex.value</div><div><br></div><div><br></div><div>Thanks.</div><div><br></div><div>--</div><div>regards,</div><div>kwatch</div></div></div></div>