Недавно я начал использовать PEP 484 и PEP 586, чтобы сделать мой код более понятным и доступным. Пока все было в порядке, но когда я захотел использовать Literal из пакета typing, оказалось, что его нельзя импортировать. Что самое удивительное, PyCharm вообще не жалуется на его импорт или использование.

Код, который я хочу использовать в итоге, выглядит так:

SomeVar = TypeVar("SomeVar", Literal['choice1'], Literal['choice2'], someType)

Он будет использоваться в тех случаях, когда у вас может быть строка для описания того, что вы хотите, или уже сделанное решение, например:

def someFunc(my_var: SomeVar = 'choice1'):
    result = []
    if my_var == 'choice1':
        result.append(...)
    else:
        result = my_var
    return result

Я использую среду Anaconda с Python 3.7.7.

8
Etilawin 14 Апр 2020 в 14:17

1 ответ

Лучший ответ

Как указано в документах, typing.Literal только доступно с Python 3.8 и выше.

7
jmd_dk 14 Апр 2020 в 11:20