#python #enums #type-hinting
Вопрос:
Подсказка типа отлично работает vscode
, когда перечисление создается следующим образом:
from enum import Enum class Color(Enum): RED = 1 YELLOW = 2 GREEN = 3
Перечисление также может быть создано из словаря с помощью Enum
API, и при создании такого типа намек не работает:
from enum import Enum color_values = dict(RED = 1, YELLOW = 2, GREEN = 3) Color = Enum('Color', color_values, type=int)
Как заставить работать подсказки типа, когда an Enum
создается с использованием его API?
Комментарии:
1. Вы не. Чтобы это работало в целом, потребуется запустить код Python, который помимо ужасной неэффективности также сталкивается с теоретическими ограничениями, такими как проблема остановки. Проверка типов предназначена для обработки простых случаев, а не для правильного ввода всех возможных программ на Python, которые когда-либо могут быть написаны.
Ответ №1:
Я сомневаюсь, что это возможно без какого-либо запуска python при проверке типов.
Рассмотрим этот пример:
from enum import Enum color_values = dict(RED = 1, YELLOW = 2, GREEN = 3) key = "BLUE" color_values[key] = 1 Color = Enum('Color', color_values, type=int)