web-dev-qa-db-fra.com

Python pour la valeur Enum

J'ai ce morceau de code:

import enum


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


def get_color_return_something(some_color):
    pass

Comment ajouter correctement des annotations de type au some_color disponible dans cette fonction, si je suppose recevoir une valeur de l'énumération Color (par exemple: Color.RED)?

16
Yuval Pruss

Type indiquant que la classe Couleur devrait fonctionner:

def get_color_return_something(some_color: Color):
    print(some_color.value)
18
ibarrond
def get_color_return_something(some_color: Color):
pass
1
Ramazan Polat

Vous pouvez imprimer le nom et la valeur comme ceci:

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
0
Joe Geezer