Я знаю, что это более старый вопрос, но я хотел упомянуть еще одно отличное решение этой проблемы, а именно пакет python bidict . Очень просто использовать:
from bidict import bidict
map = bidict(Bob = "Alice")
print(map["Bob"])
print(map.inv["Alice"])
Потому что условные типы не работают таким образом, я полагаю? Это интересное предложение иметь ошибку «недостижимый код» в части string
этого условного типа, но я не могу себе представить, чтобы кто-то сильно заботился о его реализации.
Технически и педантично, я мог бы указать, что T
может быть пересечением 'fo' & 'whyNoError?'
, которое, хотя это и абсурдный тип, который в конечном итоге сводится к never
, приводит компилятор путь, который вас может удивить о таких крайних случаях.
1110 Надеюсь, это поможет; удачи!