我有一个函数
function(input: str) -> Tuple[str, str]:
return tuple(x for x in input.split(","))
输入总是"value1,value2",然而,我得到了一条错误消息:";Tuple[str,…]";,预期的";Tuple[str
是否有强制返回类型为所需类型?只需使用一行代码?
解释器不知道x for x in input.split(",")
将产生多少元素——从它的角度来看,input
可以是任何东西。因此,它将返回的类型分类为Tuple[str, ...]
。
要使其使用返回类型Tuple[str, str]
(您将该方法标记为(,您需要显式地返回两个元素:
def function(input: str) -> Tuple[str, str]:
tup = input.split(',')
return (tup[0], tup[1])
或者以其他方式对该方法进行不同的注释。
作为一行,您可以使用列表切片:
def function(input: str) -> Tuple[str, str]:
return tuple(input.split(','))[:2]