PyCharm

时间:2017-06-27 16:35:46

标签: python-2.7 pycharm type-hinting

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

我有一个函数需要一个具有特定签名的可调用(函数)作为参数,我无法弄清楚如何对其进行注释。

我试过

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

但PyCharm显示了预期的')'和意外的令牌错误

我似乎无法找到任何相关的文档......

1 个答案:

答案 0 :(得分:3)

在Pycharm中(或在理解PEP 484类型提示的任何其他工具中)记录可调用对象的正确方法是这样的:

from typing import Callable

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

由于您使用的是Python 2,如果您还没有安装PyPi的typing模块,则需要安装。{1}}模块。 (typing已添加到3.5的Python标准库中,PyPi上的模块是一个backport)。

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

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