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

Posted

技术标签:

【中文标题】pycharm 可以建议或自动完成或插入类型提示吗?【英文标题】:Can pycharm suggest or autocomplete or insert type hints? 【发布时间】:2017-10-21 00:38:47 【问题描述】:

假设我想在我的 python2/3 代码中添加类型提示。在 Pycharm 中最简单的方法是什么?

除了 Pycharms 自己的类型推断,它如何帮助我编写类型提示?

【问题讨论】:

【参考方案1】:

基本假设是您自己编写类型。

类型旨在编码您打算为您的代码所表示的含义。虽然程序通常可以合理地推断出人类意图,但归根结底,总是需要一些人为干预。

(毕竟,如果一个程序推断出一组恰好与您的程序匹配的类型,但由于您的代码中的错误而最终完全错误呢?或者如果您打算让您的函数返回一个 @ 会发生什么? 987654323@但程序推导出List[str],反之亦然?)

也就是说,有 一些程序(例如 pytype)会尝试为您自动推断类型。但是,我的理解是,这些类型的程序仍在大力开发中,还不能处理所有情况。

如果您只想要存根,但不关心它们是否准确/包含有用的类型注释(也许您打算稍后编辑注释?),请使用“stubgen”,它是一个命令行实用程序,由安装时默认mypy。

但在一般情况下,我建议手动添加类型注释(可能从最常用的文件开始)并尝试在有意义的情况下使用 stubgen 或 pytype 等辅助工具。

【讨论】:

【参考方案2】:

如果您想对 Python 2.7 使用类似 Python3 的类型提示,可以使用 PyCharm IDE,它支持 PEP 484 中描述的存根文件。

https://www.python.org/dev/peps/pep-0484/#stub-files

来源:https://www.quora.com/Are-there-any-plan-to-support-type-hinting-in-Python-2-7

这里是 PyCharm 文档:Type Hinting in PyCharm

【讨论】:

但是pycharm可以帮我创建.pyi文件吗?【参考方案3】:

如果您为您的方法和类编写文档字符串,PyCharm 会采用它们!澄清一下,PyCharm 具有默认类型推断,但文档字符串是补充性的和可选的——它们增加了 IDE 的额外帮助。这也是一个非常好的习惯。

https://www.jetbrains.com/help/pycharm/2017.1/using-docstrings-to-specify-types.html

https://www.python.org/dev/peps/pep-0257/

【讨论】:

以上是关于pycharm 可以建议或自动完成或插入类型提示吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥有时PyCharm会无法完成代码补全或代码提示

pycharm注册表需要删除吗

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

pycharm中想自动获取到参数属性的智能提示吗,小技巧,参数类型声明

求pycharm 注册码 或破解版!

创建一个基本的自动完成建议列表