typing.Tuple из списка типов - PullRequest
1 голос
/ 20 апреля 2020

У меня есть список объектов типа и я хочу создать объект 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 составлен из всех oop (и поэтому я не мог начать с кортежа в начале). Теперь мне определенно нужно пометить его объектом typing.Tuple и, следовательно, задать вопрос.

1 Ответ

2 голосов
/ 20 апреля 2020

Я получил решение.

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

Редактировать: Это работает для всех конструкций ввода. Например, пока typing.Union(tys) и typing.Union[tys] выдаст ошибку, typing.Union[tuple(tys)] работает. Я не уверен, что это обычная вещь "python", или это особенность модуля ввода. Я обновлю этот ответ, как только узнаю.

...