假设我有一个函数如下:
from typing import Tuple
def add_one(numbers: Tuple[int, ...]) -> Tuple[int, ...]:
return tuple(number+1 for number in numbers)
Run Code Online (Sandbox Code Playgroud)
该函数接受一个可变长度的元组作为输入,并返回另一个具有相同长度的元组。
我的问题是:如何用类型提示来表达这一点?正如您在我的示例中看到的,我只能表示输入和输出元组都具有可变长度,而不是它们具有相同的长度。
编辑:这是一个虚拟示例,我用来解释我的意思,虽然我不会以这种方式实现它,但我得到了一个更复杂的函数,可以证明需要这种类型提示
使用TypeVar:
from typing import Tuple, TypeVar
TupleType = TypeVar("TupleType", bound=Tuple[int, ...])
def add_one(numbers: TupleType) -> TupleType:
return tuple(number+1 for number in numbers) # type: ignore[return-value]
a = add_one((1, 2, 3))
reveal_type(a)
Run Code Online (Sandbox Code Playgroud)
表明:
Revealed type is "Tuple[builtins.int, builtins.int, builtins.int]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |