example-code-2e/05-data-classes/cards_enum.py

15 lines
381 B
Python
Raw Normal View History

2020-02-19 04:11:45 +01:00
from dataclasses import dataclass
import enum
Suit = enum.IntEnum('Suit', 'spades diamonds clubs hearts')
Rank = enum.Enum('Rank', [str(n) for n in range(2, 10)] + list('JQKA'))
@dataclass(order=True)
class Card:
rank: Suit
suit: Rank
def __str__(self):
glyphs = [chr(x) for x in range(0x2660, 0x2664)]
return f'{self.rank} of {glyphs[self.suit-1]}'