2016-08-05 97 views
0

如何在Python中编写:类型注释以防参数可能具有不同类型?在Python中键入注释

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

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

PyCharm接受第二个变种

+0

是否有适用于他们的更一般的类型?你可以使用现有的[ABCs](https://docs.python.org/3/library/collections.abc.html#module-collections.abc)来显示它们必须提供的*接口吗? – jonrsharpe

+0

@jonrsharpe让我们假设该函数可以应用布尔值和用户模型实例,并且依赖于此参数可以选择要执行的操作。我知道如何正确地在Python中编写doc-strings。如果它是一个“|”或“/”或其他类型的分频器,以防参数可能是不同的类型 – hustas88

回答

1

您正在使用狮身人面像项目符号,顺带被拒绝列入PEP 484 -- Type Hints proposal

:type是一个info field list,并没有真正的这些正式的规范。该文件示例使用or

:type priority: integer or None 

但要注意integer是不是一个正式的类型,也不是None(它是一个单独的对象)。

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

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

Union[type1, type2] 

你可以把这些在# type:评论,如果您需要支持Python的2