반응형
match
는 Python 3.10에서 도입된 새로운 제어문으로, 패턴 매칭(pattern matching)을 지원합니다. 이 기능은 스위치문과 비슷하지만, 더 강력하고 유연하게 사용할 수 있습니다. 특히 구조적 데이터를 다루는 경우, match
문을 사용하여 여러 조건에 따라 분기하는 코드가 간결하고 가독성 있게 작성됩니다.
match
문 기본 구조
def match_example(value):
match value:
case 1:
print("정수 1입니다.")
case 2:
print("정수 2입니다.")
case 3 | 4 | 5:
print("정수 3, 4, 또는 5 중 하나입니다.")
case _:
print("해당하지 않는 값입니다.")
위의 코드에서 match
문은 value
변수의 값에 따라 다양한 조건을 검사하고, 일치하는 case
에 따라 동작을 수행합니다. _
는 와일드카드(wildcard)로, 어떤 값이 들어와도 매칭되도록 하여 기본적인 'default' 역할을 합니다.
복잡한 구조와 패턴 매칭
match
문은 중첩된 구조적 데이터, 예를 들어 딕셔너리나 튜플 같은 데이터도 매칭할 수 있어 매우 유용합니다.
def process_data(data):
match data:
case {"type": "person", "name": name, "age": age}:
print(f"이름: {name}, 나이: {age}")
case {"type": "animal", "species": species}:
print(f"동물 종: {species}")
case _:
print("알 수 없는 데이터")
위 코드에서는 data
가 {"type": "person", "name": name, "age": age}
형태인지, 아니면 {"type": "animal", "species": species}
형태인지에 따라 다른 동작을 수행합니다.
match
문 사용 예
다양한 경우에 사용할 수 있는데, 특히 조건이 복잡하거나 데이터 구조가 다양할 때 if
문을 많이 쓰는 것보다 match
문이 훨씬 깔끔하고 효율적입니다.
data = {"type": "person", "name": "Alice", "age": 30}
process_data(data)
위의 경우 "이름: Alice, 나이: 30"
이 출력됩니다.
반응형
'[====== Development ======] > Python' 카테고리의 다른 글
Sqlalchemy db update 방법 (0) | 2024.10.25 |
---|---|
Python 용 vscode extention (0) | 2024.10.04 |
Python 누락된 패키지 찾는 방법 (0) | 2024.10.04 |
[Python] 변수 선언시 type hinting을 이용하여 타입을 명시하는 방법 (0) | 2024.06.20 |
Python과 AWS S3연동하기 (0) | 2023.10.31 |