<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>