Python

Как ввести подсказки типов(type hint) Enums в Python

Используйте класс перечисления для ввода type hint в enum, например

def get_value_from_enum(size: Sizes):

Вы сможете получить доступ к любому элементу перечисления в теле функций без ошибки среды.

main.py
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 def get_value_from_enum(size: Sizes): print(size.name) # 👉️ MEDIUM print(size.value) # 👉️ 2 return size.value result = get_value_from_enum(Sizes.MEDIUM) print(result) # 👉️ 2

Мы используем перечисление класса Sizes для ввода type hint в enum.

Альтернативный подход, это использование типа Literal для указания, что элемент функций может быть перечислением.

main.py
from typing import Literal from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 def get_value_from_enum(size: Literal[Sizes.SMALL, Sizes.MEDIUM, Sizes.LARGE]): print(size.name) # 👉️ MEDIUM print(size.value) # 👉️ 2 return size.value result = get_value_from_enum(Sizes.MEDIUM) print(result) # 👉️ 2

Type hint литерала может быть использован для указания типа проверки, которые функция может получать в качестве параметров функций равным значениям предоставляемым литералом(или одним из нескольких литералов, как в примере выше).

To top