Enum w Python - kiedy go używacie?

0

Cześć,

Jak w temacie. Jestem świeży w Python i widzę, że enum w tym języku tez jest od niedawna.
Przechowywalibyście w enum jakiś wielki słownik czy namedtuple, czy raczej coś krótkiego, typu dni tygodnia?
Jest dobrym pomysłem używanie tego wszędzie, gdzie tylko mamy jakąś stałą?
Jak to wygląda w codziennym programowaniu, w prawdziwie życiowych a nie teoretycznych sytuacjach, z waszych doświadczeń?

Pozdrawiam

0

W Pythonie 3.x pisze od niedawna
ale Enuma raczej nie mialem okazji uzywac zbytnio.
bo gdy potrzebuje prostego i mutowalnego elementu to slowniki sa OK a jak niemutowalny element to namedtuple da rade.
Ogólnie jeśli potrzebowałem coś bardziej rozbudowanego z jakas logika to implementowałem zwyczajnie klasę moze przy Enum byloby bardziej 'clean' myśle że nie trafilem na taki przypadek (dokumentacja daje fajne przykłady). Doświadczenie też mi podpowiada że im bardziej łopatologicznie prosty kod tym lepiej większość przypadków użycia tworzenia czegoś bardziej rozbudowanego kończy się na tym że jedyny zysk to uzycie adnotacji z kropka zamiast np; slownik['klucz'] :P

W mojej opinii cały "rynek" zgarnie @dataclass (od 3.7) jest bardziej elastyczne ( defaultowe wartosci, mozna zrobic mutowalne i niemutowalne no i zdaje sie ma wiecej wbudowanych elementow)

0

Do czego używać enuma w pythonie?.. Do tego samego, co w innych językach :)

Możesz sobie np. zrobić maszynę stanów postaci w grze. Stany zamiast 0, 1, 2... będą nazywać się IDLE, WALK, IN_AIR. Albo programujesz sobie quiz i możesz odpowiedzi zamiast numerować, przezwać Answer.A, Answer.B... Dzięki temu masz skończoną liczbę opcji i spójniejszy kod, zamiast gdzieś w komentarzu pisać, że odpowiedzi numerowane są od 0 do 3.

0

Dzięki za odpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1