Canvas 1 Layer 1

파이썬(Python) 3.8 릴리스와 주요 변경 사항
할당표현식, 위치 한정 파라미터, f-문자열 평가식 지원

이 글에서는 파이썬 3.8에 추가된 기능과 바뀐 점을 알아보려 합니다. What’s New In Python 3.8 — Python 3.8.0 문서를 참고하였습니다. 주의! 개인적으로 판단하기에 사소한 사항들은 번역하지 않았고, 릴리스 노트만으로 이해하기가 어려운 기능엔 설명을 조금 보태었습니다.

사용자 입장에서 주목할 만한 부분은 다음과 같습니다.

할당 표현식assignment expressions

한때 논란의 중심에 있던 PEP 572 - 할당 표현식이 드디어 추가되었습니다. 개념을 이해하기 위해 예시를 살펴보죠.

while 문 예시 다음은 while 반복문에서는 흔히 나타나는 코드입니다.

할당 표현식을 사용하면 다음과 같이 간단해 집니다.

if 문 예시 if 문 역시 간단해 집니다. 다음 코드의 2~3행을,

할당 표현식을 사용하여 한 줄로 줄일 수 있습니다.

리스트 캄프리헨션 예시 다음과 같은 리스트 캄프리헨션 코드에도,

할당 표현식을 적용할 수 있습니다.

PEP 572의 제목은 할당 표현식이지만, 이전에는 바다코끼리 연산자the walrus operator로 널리 알려졌고, CPython 내부적으로는 이름 붙은 표현식named expressions이라는 용어를 사용합니다.

위치 고정 파라미터positional-only parameter

PEP 570 - 위치 고정 파라미터는 메서드나 함수의 특정 위치에서 정해진 파라미터만 받는 기능입니다. 함수 정의 부분에 위치 고정 파라미터를 선언하고 / 기호를 넣는 방식입니다.

다음 함수의 정의 부분에 / 기호를 추가했는데요. 여기서 ab는 위치 지고 파라미터, c, d는 위치 혹은 키워드 파라미터, e, f는 키워드 파라미터가 됩니다.

따라서, f 함수를 이런 식으로는 호출할 수 있지만,

이런 식으로는 호출할 수 없습니다.

이를 통해 라이브러리 제작자들이 라이브러리를 좀더 견고하게 만들 수 있고 언어의 일관성도 향상될 것으로 기대한다고 하네요.

f-문자열에서 평가식self-documenting expressions을 위한 = 기호 추가

다양한 문자열을 조합할 때 f-string이 굉장히 유용한데요. f-string 안에 변수 이름과 변수 출력 부분을 넣으려면 다음과 같이 중복이 발생하곤 했습니다.

파이썬 3.8에서는 이러한 중복을 줄일 수 있습니다. f-string의 표현식 내부에 = 기호를 사용하면 앞의 코드를 이렇게 바꿀 수 있습니다.

숫자 포맷 등도 지정할 수 있습니다.

이 외에 다른 변경 사항은 What’s New In Python 3.8 — Python 3.8.0 문서를 참고하시면 됩니다.