我在一些python 2代码中添加了类型提示,并遇到了一个小难题。当返回可能是几种类型之一时,如何暗示函数的返回类型?
我正在使用一个看起来像...的函数
def foo(param):
# do stuff
return dict_
其中param
是一个字符串,dict_
是一个字典,其中的键始终是字符串,而值可以是整数或字符串。
我的解决方案是按如下所示键入hint函数,但要检查这是否是正确的策略。
def foo(param):
# type: (str) -> Dict[str, object]
# do stuff
return dict_
答案 0 :(得分:0)
您想要一个联合(也称为求和类型)Union[str,int]
,而不是更一般的object
:
def foo(param):
# type: (str) -> Dict[str,Union[str,int]]
# ...
return dict_
您使用object
表示字典的值可以是任意类型。 Union[str,int]
表示它可能是int
;也可以是str
;但它不能是float
或list
或另一个dict
,也不能是int
或str
以外的任何东西。