기본 패턴
python
command = ("move", 10, 20)
match command:
case ("move", x, y):
print(x, y)
case ("quit",):
print("bye")설명
match-case는 단순 값 비교를 넘어, 자료 구조의 모양까지 기준으로 분기할 수 있게 해 줍니다.- 튜플, 리스트, 리터럴 값, 변수 바인딩 같은 패턴을 조합할 수 있습니다.
- 여러 형태의 입력을 구조적으로 해석할 때
if-elif보다 읽기 좋은 경우가 있습니다. - 특히 "첫 원소가 명령 종류이고 뒤 값이 매개변수인 구조"를 다룰 때 직관적입니다.
짧은 예제
python
value = ["point", 3, 4]
match value:
case ["point", x, y]:
print(f"point = ({x}, {y})")
case _:
print("unknown")빠른 정리
| 표현 | 의미 |
|---|---|
match value: | 대상 값 검사 시작 |
case pattern: | 패턴별 분기 |
| 변수 바인딩 | 패턴 내부 값을 이름으로 받기 |
case _: | 기본 분기 |
공식 참고: More Control Flow Tools
주의할 점
단순 상수 비교 몇 개만 있으면 if-elif가 더 읽기 쉬울 때도 있습니다. match-case는
구조를 분해해야 할 때 특히 빛난다고 생각하면 좋습니다.