擅长:python、mysql、java
<p>您需要导入<code>typing</code>模块。根据文件:</p>
<blockquote>
<p>The return type of generator functions can be annotated by the generic
type <code>Generator[yield_type, send_type, return_type]</code> provided by
<strong><code>typing.py</code> module</strong></p>
</blockquote>
<p>请改为这样做:</p>
<pre><code>from typing import Generator
def generate() -> Generator[int, None, None]:
for i in range(10):
yield i
</code></pre>
<p>以上将得到所需的结果:</p>
<pre><code>l = [i for i in generate()]
</code></pre>
<p>输出:</p>
<blockquote>
<p><code>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</code></p>
</blockquote>
<hr/>
<p>正如评论中指出的,您可能不会使用PyCharm的最后一个版本。尝试切换到<em>2016.3.2</em>版本,您可能会</em>没事。不幸的是,根据@AshwiniChaudhary的评论,这是一个众所周知的bug。</p>
<p>此外,报告的问题(为最后一个版本的PyCharm)是在去年12月提交的。他们可能修复了它,并将修改推到了同一版本中。</p>