如何使用类型注解指明一个未知长度的Tuple类型参数是返回Mapping的key?
How do I use type annotations to indicate an unknown-length Tuple type parameter is the key of the returned Mapping?
假设我有这样一个函数:
def a_function(data: Tuple[Tuple[str, ...], ...]) -> Mapping[Tuple[str, ...], int]:
pass
有没有一种方法可以通过类型注释表明 Tuple[str, ...]
将与通过 data
参数传入的 Tuple[str, ...]
相同?
换句话说,传入的元组将包含同质元组的同质列表,所有元组都可能看起来像 ('fred', 'smith'), ('ananya', 'cooper')
,返回的字典看起来像 {('fred', 'smith'): 7, ('ananya', 'cooper'): 13}
.
我不知道这是否会让您满意,但您可以这样做:
SomeType = TypeVar('SomeType', Tuple[str, ...])
def a_function(data: Tuple[SomeType, ...]) -> Mapping[SomeType, int]:
pass
假设我有这样一个函数:
def a_function(data: Tuple[Tuple[str, ...], ...]) -> Mapping[Tuple[str, ...], int]:
pass
有没有一种方法可以通过类型注释表明 Tuple[str, ...]
将与通过 data
参数传入的 Tuple[str, ...]
相同?
换句话说,传入的元组将包含同质元组的同质列表,所有元组都可能看起来像 ('fred', 'smith'), ('ananya', 'cooper')
,返回的字典看起来像 {('fred', 'smith'): 7, ('ananya', 'cooper'): 13}
.
我不知道这是否会让您满意,但您可以这样做:
SomeType = TypeVar('SomeType', Tuple[str, ...])
def a_function(data: Tuple[SomeType, ...]) -> Mapping[SomeType, int]:
pass