Python 2.7 类型提示 PyCharm 中的可调用类型

Posted

技术标签:

【中文标题】Python 2.7 类型提示 PyCharm 中的可调用类型【英文标题】:Python 2.7 type hinting callable types in PyCharm 【发布时间】:2017-11-30 19:40:15 【问题描述】:

我正在尝试在 python 2.7 中使用类型提示,如 here 所述。

我有一个函数需要具有特定签名的可调用(函数)作为参数,但我不知道如何注释它。

我试过了

def set_function(self, function):
    # type: ((int) -> None) -> None    

但 PyCharm 显示预期的 ')' 和意外的标记错误

我似乎找不到任何相关文档...

【问题讨论】:

【参考方案1】:

在 Pycharm(或在任何其他了解 PEP 484 类型提示的工具中)记录可调用文件的正确方法如下:

from typing import Callable

def set_function(self, function):
    # type: (Callable[[int], None]) -> None
    ...

由于您使用的是 Python 2,因此您需要从 PyPi 安装 typing 模块(如果尚未安装)。 (typing 在 3.5 中被添加到 Python 的标准库中,PyPi 上的模块是一个 backport)。

您可以在Python's documentation 和mypy 的文档中找到有关使用打字模块的更多信息。

(如果您不知道,mypy 是一个命令行工具,它也理解 PEP 484 类型提示,并且还会静态分析和类型检查您的代码。它是 Pycharm 内置类型检查器的独立工作。由于 Pycharm并且 mypy 使用 PEP 484 类型,mypy 的文档通常是开始了解有关使用类型提示的更多信息的好地方。)

【讨论】:

以上是关于Python 2.7 类型提示 PyCharm 中的可调用类型的主要内容,如果未能解决你的问题,请参考以下文章

Python的ide版本不同对pycharm有影响吗

在 PyCharm 中隐藏 Python 类型提示

1.使用pycharm搭建开发调试环境

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

Python2.7很快就是过去式了!还在用2.7的程序员,准备一份3指南

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