嵌套列表的 Python 类型注释

jav*_*321 6 python annotations typing

我想注释我的返回类型,它恰好是一个包含整数列表的列表。这是注释:List[List[int]]好吗?这是我的返回类型的确切示例:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

Zec*_* Hu 4

是的,List[List[int]]是正确的类型。

顺便说一句,每当您不确定类型时,您可以定义该变量并使用 Mypyreveal_type方法让它猜测正确的类型。例如:

> cat foo.py
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
reveal_type(a)

> mypy foo.py
1.py:2: note: Revealed type is 'builtins.list[builtins.list*[builtins.int]]'
Run Code Online (Sandbox Code Playgroud)

它告诉您 的类型aList[List[int]]。请注意,这reveal_type不是一个有效的函数;这是 Mypy 中内置的一种特殊语法。如果你尝试foo.py在 Python 中运行,它会抛出一个NameError.

有关更多信息,请考虑阅读Mypy 文档