<aside>
💡 열거형*(enumeration)*이란 특정 종류의 데이터에 정해진 값들 중 하나만 들어갈 수 있도록 하는 것을 말합니다. 파이썬의 열거형은 enum 패키지를 통해 제공됩니다.
</aside>
만약 열거형이 없다면…
today = "Monday"
if today == "MONDAY":
print("오늘은 월요일")
MON, TUE, WED, THU, FRI, SAT, SUN = 1, 2, 3, 4, 5, 6, 7
ROCK, PAPER, SCISSORS = 1, 2, 3
today = MON
today = ROCK
from enum import Enum, unique, auto
# unique 데코레이터 : 겹치는 값이 없는지 확인
# ⚠️ 겹치게 하고 실행해 볼 것
@unique
class Weekday(Enum):
MONDAY = 1
TUESDAY = 2
WEDNESDAY = 3
THURSDAY = 4
FRIDAY = 5
SATURDAY = 6
SUNDAY = 7
# auto : 자동으로 값 할당
class Hand(Enum):
ROCK = auto()
PAPER = auto()
SCISSORS = auto()
for day in Weekday:
print(day.name, day.value)
for hand in Hand:
print(hand.name, hand.value)
today = Weekday.MONDAY
# today = Weekday.SUNDAY
tomorrow = Weekday((today.value + 1) % 7) # 값으로 열거형 객체 생성
pass
def determine_winner(player_one, player_two):
win_map = {
Hand.ROCK: Hand.SCISSORS, # 바위는 가위를 이김
Hand.PAPER: Hand.ROCK, # 보는 바위를 이김
Hand.SCISSORS: Hand.PAPER # 가위는 보를 이김
}
if player_one == player_two:
return "Draw"
elif win_map[player_one] == player_two:
return "Player One Wins"
else:
return "Player Two Wins"
player_one_hand = Hand.ROCK
player_two_hand = Hand.SCISSORS
game_result = determine_winner(player_one_hand, player_two_hand)