给定以下脚本:
# check.py
a = [
('a',),
('b1', 'b2'),
('x',),
]
reveal_locals()
运行方式:
mypy check.py
返回
check.py:7: note: Revealed local types are:
check.py:7: note: a: builtins.list[builtins.tuple*[builtins.str]]
我想知道如果我想有一些:,我应该如何为这种类型进行注释
def f(a : TypeHere) -> None:
print(a)
f(a = [ ('a',), ('b1', 'b2'), ('x',) ] )
其中,a = [ ('a',), ('b1', 'b2'), ('x',) ]
是具有1个或多个字符串的元组的列表。
当您处理未知大小的元组时,类型检查器需要类似Tuple[<type>, ...]
的语法,而当元组中的元素数量已知时,例如response: typing.Tuple[int str] = (200, 'OK']
,语法是直接的。
在您的情况下,元组中的项数不同,Tuple[str, ...]
应该起作用。
import typing
def f(a : typing.List[typing.Tuple[str, ...]]) -> None:
print(a)
f(a = [ ('a',), ('b1', 'b2'), ('x',) ] )