Python中的类型提示元组

Python中的类型提示元组,python,type-hinting,Python,Type Hinting,当我想在Python中键入一个元组时,比如: def func(var: tuple[int, int]): # do something func((1, 2)) # would be fine func((1, 2, 3)) # would throw an error 需要给出元组中项目的确切数量。这与列表类型暗示不同: def func(var: list[int]): # do something func([1]) # would be fin

当我想在Python中键入一个元组时,比如:

def func(var: tuple[int, int]):
    # do something

func((1, 2))    # would be fine
func((1, 2, 3)) # would throw an error
需要给出元组中项目的确切数量。这与列表类型暗示不同:

def func(var: list[int]):
    # do something

func([1])       # would be fine
func([1, 2])    # would also be fine
func([1, 2, 3]) # would also be fine
这在某种程度上是必然的,因为元组的类型。因为它们是不可更改的,所以必须对其中的项目数量进行硬编码

所以我的问题是,有没有办法让元组类型提示中的项数变得灵活?我试过类似的方法,但没有成功:

def func(var: tuple[*int]):
是的,可以使元组类型提示中的项数灵活:

从文档中:

要指定同构类型的可变长度元组,请使用文字省略号,例如
tuple[int,…]
。普通的
元组
相当于
元组[Any,…]
,反过来又相当于
元组

首先,可以使用内置打字,而无需导入
打字
模块。e、 g

def func(变量:tuple[int]):
通过

如果不使用额外的软件包就可以实现,那就太好了,但无论如何我都需要它,而且似乎没有其他选择了,
键入
已经在Pyhthon中,因此不需要额外的软件包
from typing import Tuple

def func(var: Tuple[int, ...]):
    pass