我正在尝试在python 2.7中使用类型提示,如here所述。
我有一个函数需要一个具有特定签名的可调用(函数)作为参数,我无法弄清楚如何对其进行注释。
我试过
def set_function(self, function):
# type: ((int) -> None) -> None
但PyCharm显示了预期的')'和意外的令牌错误
我似乎无法找到任何相关的文档......
答案 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的文档通常是开始寻找有关使用类型提示的更多信息的好地方。)