126 votes

Annotations de type pour l'attribut 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 à la some_color dans cette fonction, si je suppose que je vais recevoir un attribut enum de l'énumération Color (par exemple: Color.RED )?

106voto

ibarrond Points 2295

Tapez indiquant que la classe Color devrait fonctionner:

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

7voto

Ramazan POLAT Points 475
def get_color_return_something(some_color: Color):
    pass

4voto

Paul Weemaes Points 11

Ce qui suit fonctionnera avec Pyton 3.9 / PyCharm

 from enum import Enum
from typing import Optional, Union


class Color(Enum):
    RED: int = 1
    GREEN: int = 2


def guess_color(x: Union[Color.RED, Color.GREEN]) -> Optional[ValueError]:
    if x == Color.RED:
        print("Gotcha!")
    else:
        return ValueError(f"It's not {Color.RED}")


guess_color(Color.RED)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X