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 模块的特殊情况。一旦我知道,我会更新这个答案。
我有一个类型对象列表,想构造一个 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 模块的特殊情况。一旦我知道,我会更新这个答案。