在Python

时间:2016-08-05 08:44:33

标签: python annotations type-hinting

如果参数可以有不同的类型,如何在Python中编写:type 注释?

    """
    :type param_name: type1|type2
    """

    """
    :type param_name: type1 / type2
    """

PyCharm接受第二个变种

1 个答案:

答案 0 :(得分:1)

您正在使用 Sphinx项目符号,但它被拒绝包含在PEP 484 -- Type Hints proposal中。

:type是一个info field list,对于这些,我们并没有那么多正式的规范。文档示例使用or

:type priority: integer or None

但请注意integer不是正式类型,也不是None(它是单例对象)。

这些是文档构造,而不是类型提示。 PyCharm支持这些很好,但这些不是Python标准。

我会坚持使用正确的类型注释。这意味着使用Union type

Union[type1, type2]

如果您需要支持Python 2,可以将它们放在# type:注释中。