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

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

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

我试过了

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

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

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

【问题讨论】:

    标签: python-2.7 pycharm type-hinting


    【解决方案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 documentationmypy 的文档中找到有关使用打字模块的更多信息。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-26
      • 2015-11-23
      • 2021-03-11
      • 2020-08-22
      • 2015-10-17
      • 2021-07-10
      • 2016-03-22
      • 1970-01-01
      相关资源
      最近更新 更多