如何将mypy"reveal_locals()"的输出转换为Python中的正确键入语法



给定以下脚本:

# 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',) ] )

相关内容

  • 没有找到相关文章

最新更新