1 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您使用的是 Python?3.11或更高版本,則可以簡(jiǎn)單地在返回類(lèi)型的類(lèi)型提示中使用解包星號(hào) (?*
),類(lèi)似于您在問(wèn)題中的寫(xiě)法(但略有不同,請(qǐng)參見(jiàn)下面的示例)。
但是,截至撰寫(xiě)本文時(shí),Python 3.11 仍未公開(kāi),您可能使用的是3.10 或更早版本。如果是這種情況,您可以使用向后移植的特殊類(lèi)型Unpack
,它typing_extensions
在pypi上可用。
用法示例:
from typing_extensions import Unpack
# Python <=3.10
def unpack_hints_py_10_and_below(args: list[str]) -> tuple[int, Unpack[str]]:
? ? first_arg, *rest = args
? ? return len(first_arg), *rest
# Python >= 3.11
def unpack_hints_py_11_and_above(args: list[str]) -> tuple[int, *str]:
? ? first_arg, *rest = args
? ? return len(first_arg), *rest
添加回答
舉報(bào)