您如何键入提示可能是几种类型之一的函数参数?

时间:2019-04-10 18:02:25

标签: python type-hinting

我在一些python 2代码中添加了类型提示,并遇到了一个小难题。当返回可能是几种类型之一时,如何暗示函数的返回类型?

我正在使用一个看起来像...的函数

def foo(param):
    # do stuff
    return dict_

其中param是一个字符串,dict_是一个字典,其中的键始终是字符串,而值可以是整数或字符串。

我的解决方案是按如下所示键入hint函数,但要检查这是否是正确的策略。

def foo(param):
    # type: (str) -> Dict[str, object]
    # do stuff
    return dict_

1 个答案:

答案 0 :(得分:0)

您想要一个联合(也称为求和类型)Union[str,int],而不是更一般的object

def foo(param):
    # type: (str) -> Dict[str,Union[str,int]]
    # ...
    return dict_

您使用object表示字典的值可以是任意类型。 Union[str,int]表示它可能是int;也可以是str;但它不能是floatlist或另一个dict,也不能是intstr以外的任何东西。