Аннотации типа Python для значения Enum

У меня есть этот код:

import enum


class Color(enum.Enum):
    RED = '1'
    BLUE = '2'
    GREEN = '3'


def get_color_return_something(some_color):
    pass

Как правильно добавить аннотации типов к some_color в этой функции, если я предполагаю получить значение из перечисления цвета (например: Color.RED)?

Ответы

Ответ 1

Тип намека на класс цвета должен работать:

def get_color_return_something(some_color: Color):
    print(some_color.value)

Ответ 2

def get_color_return_something(some_color: Color):
    pass

Ответ 3

Вы можете напечатать имя и значение следующим образом:

import enum

class Color(enum.Enum):
  RED = '1'
  BLUE = '2'
  GREEN = '3'

def get_color_return_something(some_color):
  print(some_color.name)
  print(some_color.value)

get_color_return_something(Color.RED)
# RED
# 1