当使用带有约束和列表解构的泛型时,Mypy很难确定类型

2024-04-26 06:27:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望有人能给我一个解释,因为这个问题看起来很奇怪。 就我所能得出的结论而言,这是重现问题的最低代码。 它与“T”的约束以及解构另一个数组来构造一个数组有关。 这也发生在具有约束泛型的类中。即使是静态方法

from typing import TypeVar

T = TypeVar("T", int, str)
def foo(c: T) -> None:
    a = [1,2,3]
    print([a])   # works
    print(*a)    # works
    print([*a])  # error: Cannot determine type of "a"

if __name__ == "__main__":
    foo(3)

Tags: 代码fromimporttypingfoodef数组int