Python强制元组返回类型为必需的一用一行



我有一个函数

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]

最新更新