title: In practice, what are the main uses for the "yield from" syntax in Python 3.3?
body: <p>I'm having a hard time wrapping my brain around <a href="http://www.python.org/dev/peps/pep-0380/" rel="noreferrer">PEP 380</a>.</p>
  <ol>
  <li>What are the situations where <code>yield from</code> is useful?</li>
  <li>What is the classic use case?</li>
  <li>Why is it compared to micro-threads?</li>
  </ol>
  <p>So far I have used generators, but never really used coroutines (introduced by <a href="http://www.python.org/dev/peps/pep-0342/" rel="noreferrer">PEP-342</a>). Despite some similarities, generators and coroutines are basically two different concepts. Understanding coroutines (not only generators) is the key to understanding the new syntax.</p>
  <p>IMHO <strong>coroutines are the most obscure Python feature</strong>, most books make it look useless and uninteresting.</p>
  <hr />
  <p>Thanks for the great answers, but special thanks to <a href="https://stackoverflow.com/users/500584/agf">agf</a> and his comment linking to <a href="http://www.dabeaz.com/coroutines/" rel="noreferrer">David Beazley presentations</a>.</p>