Python 2.7 PyCharm 中的类型提示可调用类型
Python 2.7 type hinting callable types in PyCharm
我正在尝试在 python 2.7 中使用类型提示,如 here 所述。
我有一个函数需要一个具有特定签名的可调用(函数)作为参数,但我不知道如何注释它。
我试过了
def set_function(self, function):
# type: ((int) -> None) -> None
但是 PyCharm 显示预期的 ')' 和意外的标记错误
我似乎找不到这方面的任何文档...
在 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, and within the documentation for mypy 中找到有关使用输入模块的更多信息。
(如果你不知道,mypy 是一个命令行工具,它也理解 PEP 484 类型提示,也会静态分析和类型检查你的代码。它是 Pycharm 的独立成果-in 类型检查器。由于 Pycharm 和 mypy 都使用 PEP 484 类型,因此 mypy 的文档通常是开始寻找有关使用类型提示的更多信息的好地方。)
我正在尝试在 python 2.7 中使用类型提示,如 here 所述。
我有一个函数需要一个具有特定签名的可调用(函数)作为参数,但我不知道如何注释它。
我试过了
def set_function(self, function):
# type: ((int) -> None) -> None
但是 PyCharm 显示预期的 ')' 和意外的标记错误
我似乎找不到这方面的任何文档...
在 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, and within the documentation for mypy 中找到有关使用输入模块的更多信息。
(如果你不知道,mypy 是一个命令行工具,它也理解 PEP 484 类型提示,也会静态分析和类型检查你的代码。它是 Pycharm 的独立成果-in 类型检查器。由于 Pycharm 和 mypy 都使用 PEP 484 类型,因此 mypy 的文档通常是开始寻找有关使用类型提示的更多信息的好地方。)