페이지상단으로이동

더 쉽고 더 세밀해진 "파이썬(Python) 3.8"

    • 이진영 기자
    • |
    • 입력 2019-07-23 11:51
    • |
    • 수정 2019-07-23 14:16
[python.org]

팀 파이썬이 출시 예정인 네 가지 베타 출시 중 두 번째인 Python 3.8b2를 출시했다고 IT 전문지 Packt이 보도했다. 파이썬 3.8은 PEP 572 개선, 새로운 위치 전용 파라미터, f-string 구문 변화 등을 포함한다.

7월 29일 출시 예정인 세 번째 베타 버전에 앞서 파이썬 3.8의 주요 기능을 살펴본다.


1. 논란이 된 PEP 572 개선 제안
지난해 PEP 572 (Python Enhancement Proposal 572) 개선 제안이 파이썬 커뮤니티에서 큰 논란이 되었다. 운영자가 코드를 약간 더 읽기 쉽도록 만들었다는 긍정적인 의견과 함께 개선이 꼭 필요했는가에 대한 의문이 많이 제기되었다.

파이썬의 창시자인 Guido van Rossum(귀도 반 로섬)은 InfoWorld와의 인터뷰에서 PEP 572 논란에 대해 이야기했다.

반 로섬에 따르면 이 제안은 할당(assignmenats)이 표현식 평가(expressione evaluation)의 일부로 발생하도록 하는 새 구문에 대한 것이다. 사소한 기능 추가로 C, C++, 자바, 자바스크립트 등에서도 제공되는 부가 기능으로 특정 상황에서 코딩을 더 쉽게 해주며 중복을 제거해 읽는 것 역시 쉽게 해준다고 말했다.

PEP 572에 따르면 할당식은 표현식의 일부로 변수에 값을 할당할 수 있도록 하는 동기식 연산자이다. 다중 패턴 매칭과 루프와 하프 등을 단순화하는 것을 목적으로 한다.

그는 파이썬의 설계 철학 및 원리에 부합하지 않는다는 사람들의 의견과 달리 이 개선 제안은 사소한 구문 변경으로 근본적인 무엇이 아니라고 언급했다.

PyCon 2019에서 PYPI 관리자인 Dustin Ingram은 구문을 사용할 수 있는 몇 가지 예를 제공했다. 전체 내용을 YouTube에서 확인할 수 있다.


2. 새로운 위치 전용 파라미터 (/)
PEP 570에서 위치 전용 파라미터를 지정하는 새로운 구문(/)이 소개되었다. 이것은 *가 오른쪽에 있는 인수가 키워드임을 나타내는 방법과 유사하다. 이 구문은 이미 내장형 및 표준 CPython 라이브러리 함수(예를 들어 pow() 함수 등)에 사용되고 있다.

pow(x, y, z=None, /)

이 구문은 라이브러리 작성자가 API의 의도된 사용법을 보다 효과적으로 제어하고, 안전하고 역-호환 방식으로 발전할 수 있도록 한다. 라이브러리 작성자는 위치 전용 매개 변수의 이름을 깨지 않고 변경할 수 있으며 기존의 문서와 다양한 내장 및 표준 라이브러리 함수의 동작과 파이썬 언어의 일관성을 보장받을 수 있다.


3. f-string의 용이한 디버깅을 위한 구문 추가
정형화된 문자열인 'f-string'은 파이썬 3.6에서 도입되었다. 이를 통해 함수 호출 결과를 삽입하는 것과 함께 문자열의 일부로 표현식을 평가할 수 있다. 파이썬 3.8에서는 디버깅을 쉽게 하기 위해 add(=) 지정자와 !d 변환을 추가해 구문을 약간 변경했다.

print (f '{foo =} {bar =}')

이는 개발자가 "인쇄 스타일 디버깅"을 더 잘 수행할 수 있는 방법을 제공한다. 특히 Perl, Ruby, JavaScript 등과 같은 기존의 언어를 사용하는 사람에게 도움이 된다.

한 개발자는 Hacker News에 "자바스크립트 문자열의 연결은 너무 복잡해질 수 있고, 큰 문자열에는 어려움이 있었다."라고 언급하며 "f-string은 굉장하다."라고 말했다.


4. 파이썬 초기화 구성
파이썬은 구성이 매우 간단하지만, 코드 전체에 흩어져있는 것처럼 보이기도 한다. PEP 587은 개발자들이 구성을 더 세밀하게 제어하고, 오류 보고를 더 잘 할 수 있도록 파이썬 초기화를 구성하기 위한 새로운 C API를 소개한다. 향상된 기능을 통해 구성을 적용하기 전에 읽고 수정할 수 있으며 파이썬이 모듈 검색 경로 ("sys.path")를 계산하는 방법을 재정의 할 수 있다.


이와 함께 10월에 출시 예정인 파이썬 3.8에는 CPython의 빠른 호출 프로토콜, 벡터콜, 피클 프로토콜 5의 대역 외 버퍼 지원 등을 비롯한 많은 흥미로운 기능들이 추가될 예정이다. 파이썬의 공식 웹 사이트 에서 전체 목록을 찾을 수 있다.

이진영 기자 | [email protected]

댓글 [0]
댓글 서비스는 로그인 이후 사용가능합니다.
댓글등록
취소
  • 최신순
닫기