-
Python 3.10 미리보기 (switch case)컴퓨터/파이썬 2021. 1. 11. 19:55728x90반응형
Structural Pattern Matching
1. 소개
3.10 버전에 추가될 match, case 문법을 미리 보면 다음과 같다.
def http_error(status): match status: case 400: return "Bad request" case 401: return "Unauthorized" case 403: return "Forbidden" case 404: return "Not found" case 418: return "I'm a teapot" case _: return "Something else"
자바의 switch문과 같은 기능이 추가될 것으로 보인다.
Scala, Erlang과 비슷하게 작동할 것이며, 이미 있는 시퀀스 unpacking 문법을 이용했다고 한다. (a, b = value)
기존 문법
def is_tuple(node): if isinstance(node, Node) and node.children == [LParen(), RParen()]: return True return (isinstance(node, Node) and len(node.children) == 3 and isinstance(node.children[0], Leaf) and isinstance(node.children[1], Node) and isinstance(node.children[2], Leaf) and node.children[0].value == "(" and node.children[2].value == ")")
match를 이용한 문법
def is_tuple(node: Node) -> bool: match node: case Node(children=[LParen(), RParen()]): return True case Node(children=[Leaf(value="("), Node(), Leaf(value=")")]): return True case _: return False
참고
PEP 622 @링크
CPython @Github 링크
위 python을 컴파일해서 사용하면 미리 체험해 볼 수 있다.
728x90'컴퓨터 > 파이썬' 카테고리의 다른 글
Python selectolax: Modest 엔진 HTML parser (0) 2021.01.16 Python smtplib: 원하는 다나와 제품 가격 매일 알림 만들어보기 (0) 2021.01.09 Python: 무료 Cloud Flask 서버 만들기 (AWS EC2 + S3) (3) 2020.12.26