PyCharm 类型提示怪异

Posted

技术标签:

【中文标题】PyCharm 类型提示怪异【英文标题】:PyCharm type hinting weirdness 【发布时间】:2016-03-22 23:50:04 【问题描述】:

PyCharm 4.5.4 版

使用 Python 3.4.3

由于某种原因,我在 PyCharm 中看到了这个警告,这似乎很奇怪。

预期为 'collections.Iterable',得到的是 'range[int]'

此检查检测函数调用表达式中的类型错误。 由于动态调度和鸭子类型,这在有限的情况下是可能的 但有用的案例数量。函数参数的类型可以是 在文档字符串或 Python 3 函数注释中指定。

for _ in range(x):

对我来说,这似乎是你可以写的最惯用的for loop。

【问题讨论】:

不敢相信一年后这仍然是一个问题。 【参考方案1】:

根据您的报告,这似乎是 PyCharm 中的一个错误。范围对象一个可迭代对象,一个可迭代对象。在 3.4.3 中:

>>> import collections
>>> x = 3
>>> isinstance(range(x), collections.Iterable)
True

尝试向 PyCharm 人员报告问题。

【讨论】:

它已经在那里了:youtrack.jetbrains.com/issue/PY-15038 似乎需要特定的混合解释器设置。谢谢。

以上是关于PyCharm 类型提示怪异的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PyCharm 中显示类型提示?

在 PyCharm 中隐藏 Python 类型提示

支持类型提示 PyCharm [关闭]

scrapy 在pycharm 中为啥没有代码提示?

pycharm 可以建议或自动完成或插入类型提示吗?

使用 attrs 对子类进行 Pycharm 类型提示