Wpis z mikrobloga

Czy w Pythonie (CPython 3.5.1) da się "wygenerować" klasę Enum bez wpisywania wszystkich atrybutów z palca?

Mam napisane takie dwie klasy:

class Rank(Enum):
Ace = 'A'
King = 'K'
...
Two = '2'

class Suit(Enum):
Spade = 's'
Heart = 'h'
Club = 'c'
Diamond = 'd'

Pierwsza ma 13 atrybutów, druga 4. Teraz chciałbym zrobić kolejną klasę, która będzie miała 13 * 4 = 52 atrybuty wg reguły rank.name + suit.name = rank.value + suit.value

class Card(Enum):
AceSpade = 'As'
AceHeart = 'Ah'
...
TwoDiamond = '2d'

Da się to zrobić z godnością, czy trzeba po prostu wklepać te 52 linijki kodu?
#python #programowanie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@lukasz1985m: No niby tak można. Jednak klasa Card nie ma robić nic poza reprezentowaniem pewnych stałych wartości, więc teoretycznie powinien tam być użyty właśnie Enum. Zresztą, jak nie można tak jak chcę, to lepiej chyba po prostu wpisać to od ręki, niż robić zwykła klasę.
  • Odpowiedz