我有一个类型对象的列表,想构造一个type.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”,还是键入模块是否特殊。我一知道就会更新这个答案。