파이썬(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이라는 용어를 사용합니다.

44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮

위치 고정 파라미터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 문서를 참고하시면 됩니다.

도움이 되셨나요?
RSS 리더 피들리에서 최신 글을 구독할 수 있습니다.
트위터, 페이스북으로 44BITS의 새소식을 전해드립니다.
✔ 44BITS의 다른 활동도 확인해보세요. 다양한 채널에서 만나볼 수 있습니다.
✔ 따뜻한 댓글 하나와 피드백은 큰 힘이 됩니다.

홈브류(Homebrew)를 사용해 맥OS(macOS)에서 특정 버전의 패키지 설치하기

🗒 기사, 2018-08-21 - 홈브류를 사용하면 맥OS(macOS)에서 쉽게 패키지를 관리할 수 있습니다. 일반적으로 홈브류 패키지는 최신 버전을 제공합니다. 이 글에서는 홈브류를 사용해서 특정 버전의 패키지를 설치하는 방법을 소개합니다.

AWS 람다(AWS Lambda) 커스텀 런타임 만들기(feat. 루비 2.6.0)

🗒 기사, 2019-01-04 - AWS 람다에서 공식 지원하지 않는 언어나 버전을 사용하고 싶은 경우 커스텀 런타임 기능을 활용할 수 있습니다. 이 글에서는 아직 AWS 람다에서 공식 지원하고 있지 않은 루비 2.6 최신 버전을 커스텀 런타임 기능을 사용해 실행하는 방법을 소개합니다.

AWS 람다(Lambda), 프로그래밍 언어 최신 버전 추가 지원: 파이썬 3.8, 노드 12.0, 자바 11

🗞 새소식, 2019-12-04 - AWS 람다에서 파이썬 3.8, 노드 12.0, 자바 11 등 프로그래밍 언어 최신 버전을 추가 지원합니다. 새로운 버전의 런타임들은 모두 아마존 리눅스 2를 기반으로 동작합니다.