typing.Tuple 来自类型列表

typing.Tuple from list of types

我有一个类型对象列表,想构造一个 typing.Tuple 对象。有办法吗?

tys = [int, str]    # This is known only at runtime
x = typing.Tuple(tys)   # TypeError: Type Tuple cannot be instantiated; use tuple() instead

如有任何帮助,我们将不胜感激。谢谢

编辑:澄清问题-

我想做的是 - 访问 python AST 中的元组并注释其类型。为此,列表 tys 由一个循环组成(因此,我无法从一开始就使用一个元组)。现在,我肯定必须用 typing.Tuple 对象和问题来注释它。

我找到了解决方案。

x = typing.Tuple[tuple(tys)] # This works

编辑:这适用于所有类型结构。例如。虽然 typing.Union(tys)typing.Union[tys] 会报错,但 typing.Union[tuple(tys)] 有效。我不确定这是一般 "python" 的事情,还是 typing 模块的特殊情况。一旦我知道,我会更新这个答案。