В следующем примере:
from typing import Literal
from dataclasses import dataclass
@dataclass
Class Example:
answer: Literal['Y', 'N']
x = Example('N')
field = fields(x)[0]
Как проверить, что поле переменной имеет тип Literal? issubclass(field.type, Literal)
, похоже, не работает.
Во-вторых, как мне тогда получить list ['Y', 'N']
из field.type
, чтобы я мог проверить значение во время выполнения и выдать ошибку, когда fail = Example('invalid')
pydantic
делает это, но вам придется использовать их падение в классе данных ...