当我想在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]):
"List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
。考虑使用协变的Sequence[tuple[Any]]
替代。 - aaron