【发布时间】:2017-07-20 17:53:57
【问题描述】:
根据PEP-484,我们应该可以键入提示生成器函数,如下所示:
from typing import Generator
def generate() -> Generator[int, None, None]:
for i in range(10):
yield i
for i in generate():
print(i)
但是,列表推导在 PyCharm 中给出了以下错误。
预期的 'collections.Iterable',得到了 'Generator[int, None, None]' 而不是 ... (⌘F1)
知道为什么 PyCharm 将其视为错误吗?
阅读一些答案后的一些澄清。我正在使用 PyCharm Community Edition 2016.3.2(最新版本)并已导入 typing.Generator(已在代码中更新)。上面的代码运行得很好,但是 PyCharm 认为这是一个错误:
所以,我想知道这实际上是错误还是 PyCharm 中不支持的功能。
【问题讨论】:
-
将代码更改为:ideone.com/IwHbT0 会发生什么?
-
我使用的是 Pycharm 2017.1 EAP,它似乎已修复。
-
EAP 确实解决了这个问题;非常感谢。
-
@MikeWilliamson 是的,这是一个编辑:stackoverflow.com/revisions/42531143/2。看起来真正的问题是 PyCharm,而不是 Python。最重要的答案也已更新以提及这一点。根据 SO 标准,我不知道应该如何处理这个令人困惑的 Q/A。
标签: python python-3.x pycharm python-typing