https://www.ciokorea.com/news/209694

10시 53분

Serdar Yegulalp | InfoWorld

파이썬의 최신 버전(v3.10)은 강력한 패턴 매칭, 개선된 오류 보고, 래핑된 함수에 관한 스마트한 입력 구문 등을 제공한다.

파이썬 3.10(Python 3.10)이 지난 10월 4일 출시됐다. 용감무쌍한 파이썬 개발자라고 해도 적절한 예방 조치(예: 가상 환경 사용 등)와 함께 코드를 테스트하는 게 좋다.

엄밀히 말해서 파이썬 3.10에는 진정으로 새로운 기능이 많진 않지만 그중 하나인 ‘구조적 패턴 매칭(Structural Pattern Matching)’은 async 이후 언어 구문에 가장 중요한 추가 기능일지도 모른다. 여기에서는 파이썬 3.10의 모든 새로운 기능과 코드를 지원하는 방법을 살펴본다.

ⓒGetty Images

구조적 패턴 매칭 구조적 패턴 매칭을 사용하면 가능한 값 세트 중 하나와 변수를 일치시킬 수 있다. 또 값의 패턴(예: 특정 속성이 특정 값으로 설정된 객체)과도 일치시킬 수 있다. 이를 통해 가능성의 범위가 크게 확장되고, 다양한 시나리오를 포함하는 코드를 신속하게 작성할 수 있다. 예는 아래와 같다. 패턴 매칭을 사용하는 방법에 관한 자세한 내용은 이곳에서 확인할 수 있다.

case

case

case

case

print

더 정확해진 오류 보고 파이썬의 오류 보고는 오랫동안 파서(parser)에 좌우돼 왔다. 개발팀은 파이썬 3.9에서 ‘더 빠르고, 더 강력하며, 파이썬 팀이 유지관리하기 더 쉽고, 내부 해킹이 덜한’ 완전히 새로운 파서를 선보였다.

이 새로운 파서가 개발자들에게 제공하는 한 가지 큰 보너스는 훨씬 더 정확하고 유용한 오류 메시지다. 파이썬 3.8에서 다음의 코드는 구문 오류를 생성했다.

print

print

File

print

SyntaxError

실제 문제는 한 줄 앞에 있기 때문에 이는 별로 도움이 되지 않았다. 파이썬 3.10은 훨씬 더 유용한 오류를 생성한다.

File

print

SyntaxError

개발팀에 따르면 파서에 의해 생성된 오류 중 많은 부분이 이러한 맥락에서 개선됐다. 더 정확한 오류 정보를 제공할 뿐만 아니라 오류가 실제로 발생한 위치에 대해서도 더 정확한 정보를 지원한다.

매개변수 사양 변수 타입 정보로 코드에 주석을 추가하는 데 쓰이는 파이썬의 입력 모듈을 사용하면 호출 가능한 타입(예: 함수 등)을 설명할 수 있다. 하지만 해당 타입 정보는 호출 가능한 객체(callable)에 걸쳐 전파될 수 없다. 이는 함수 데코레이터 등에 주석을 달기 어렵게 만든다.

입력에 새로 추가된 2가지, typing.ParamSpectyping.Concatenate를 사용하면 호출 가능한 객체에 추상적인 타입 정의 정보로 주석을 달 수 있다. PEP 문서에서 가져온 이 새로운 기능의 예는 다음과 같다.