파이썬(Python) 3.9 버전이 공식 릴리즈 되었기에 이에 관해 간단히 살펴보는 글입니다. 다만 이 글은 문법적으로 변경되는 사항만 정리합니다. 파서가 바뀌는 등의 변화는 저 같은 사람에겐 체감이 잘 안 되기도 하니깐요.
사전형 합치기 및 수정 연산자 추가
사전형(dict)끼리 합치기를 지원하는 |
오퍼레이터가 추가되었습니다.
>>> {'a': 1, 'b': 2} | {'c': 3, 'd': 4}
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
합쳐질 때 중복되는 키는 업데이트 되는 형태 같습니다. 따라서 아래와 같이 |=
오퍼레이터를 이용해 사전형의 값을 업데이트 할 수도 있습니다.
>>> d = {'a': 111, 'b': 2}
>>> d |= {'a': 1, 'c': 3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
어려울 것 없이 d |= d2
명령은 d = d | d2
의 의미입니다.
상세한 내용은 PEP-584를 참고합시다.
문자열 머릿글자 혹은 꼬릿글자 삭제 기능 추가
str
타입에 removeprefix
와 removesuffix
가 추가되었습니다.
>>> 'some string'.removeprefix('some ')
'string'
>>> 'some string'.removesuffix(' string')
'some'
>>> 'some string'.removeprefix('not exists')
'some string'
일치하는 머릿글자나 꼬리글자가 없으면 삭제하지 않고 원본을 그대로 돌려줍니다. 이런 게 있었으면 할 때가 종종 있었는데 기분 좋은(?) 업데이트네요.
상세한 내용은 PEP-616를 참고합시다.
리스트와 사전형 타입 힌트 내장 지원
기존에는 __future__
모듈의 annotations
를 임포트하지 않으면 리스트나 사전형의 타입 힌트를 쓸 수 없었습니다만, 드디어 3.9부터는 별도의 import 없이 아래와 같이 list
나 dict
타입 힌트를 주는 코드를 작성할 수 있게 되었습니다.
def greet_all(names: list[str]) -> None:
for name in names:
print("Hello", name)
강타입 언어가 되기엔 아직 무리이긴 하지만 타입 체크 지원도 점점 발전하고 있는 게 느껴지네요.
상세한 내용은 PEP-585를 참고합시다.
타입 힌트에 관한 내용은 아래 글을 살펴봅시다.
기타
주요 변화는 이 정도로 마무리합니다. 이외에도 모듈이 추가되거나 강화되는 등의 변화들이 많습니다. 아래 링크에서 원문을 보실 수 있으니 참고하시기 바랍니다.
여담이지만 언어들끼리 좋은 점을 벤치마킹 하다보니 여러 언어들이 점점 닮아가고 있다고 느껴지네요. Lisp 같은 변태스런 언어들을 빼면 미래의 언어들은 다 비슷비슷해질 것 같다는 생각이 들었습니다.
'기술적인 이야기 > 기타 개발' 카테고리의 다른 글
Flutter에서 애플 앱스토어 업로드 시 최소 버전 표기 문제 (748) | 2020.10.13 |
---|---|
Python Exceptions 간략 정리 (579) | 2020.10.09 |
러스트의 열거형(Enums) 살펴보기 (692) | 2020.10.04 |
flutter: 당신의 Xcode는 너무 구버전이예요! (818) | 2020.09.18 |
러스트의 가변성(Mutability) 이야기 (1040) | 2020.09.04 |
댓글