我有一個功能
function(input: str) -> Tuple[str, str]:
return tuple(x for x in input.split(","))
輸入始終是“value1, value2”,但是,我收到一條錯誤訊息:“Tuple[str, ...]”,預期為“Tuple[str, str]”)
無論如何強制回傳型別為預期的只使用一行代碼?
uj5u.com熱心網友回復:
解釋器不知道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]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357892.html
下一篇:根據多個引數交換串列項
