Получение литерала из типа Literal Python во время выполнения?Python

Программы на Python
Anonymous
Получение литерала из типа Literal Python во время выполнения?

Сообщение Anonymous »

Как получить буквальное значение из Literal[] при вводе?

Код: Выделить всё

from typing import Literal, Union

Add = Literal['add']
Multiply = Literal['mul']
Action = Union[Add,Multiply]

def do(a: Action):
if a == Add:
print("Adding!")
elif a == Multiply:
print("Multiplying!")
else:
raise ValueError

do('add')
Приведенный выше код проверяет тип, поскольку 'add' имеет тип Literal['add'], но во время выполнения он выдает ошибку ValueError, поскольку строка ' add' — это не то же самое, что typing.Literal['add'].
Как я могу во время выполнения повторно использовать литералы, которые я определил в type уровень?

Подробнее здесь: https://stackoverflow.com/questions/591 ... at-runtime

Вернуться в «Python»