Question :
Type annotations for Enum value
I have this piece of code:
import enum
class Color(enum.Enum):
RED = '1'
BLUE = '2'
GREEN = '3'
def get_color_return_something(some_color):
pass
How do I properly add type annotations to the some_color
varaible in this function, if I suppose to receive a value from the Color enum (for example: Color.RED
)?
Answer #1:
Type hinting the Color class should work:
def get_color_return_something(some_color: Color):
print(some_color.value)
Answer #2:
def get_color_return_something(some_color: Color):
pass
Answer #3:
The following will work with 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)