반응형
파이썬 버전별 특징 정리
파이썬은 버전이 계속 업데이트 되면서 기능들이 개선되고 있습니다. 이 포스팅에서는 파이썬 3.6에서 파이썬 3.12까지 진행된 버전업의 특징들을 정리합니다. 그리고 이를 표로 정리했습니다.
파이썬 3.6 (2016년 발표)
- 포맷 스트링 리터럴 (f-strings): 문자열 포맷팅을 위한 새로운 방법.
name = "world"
print(f"Hello, {name}!")
- 언더스코어 숫자 리터럴: 숫자 리터럴 내의 가독성을 향상시키기 위해 언더스코어 사용.
billion = 1_000_000_000
print(billion)
- 순서를 유지하는 딕셔너리: 딕셔너리가 삽입 순서를 유지함.
파이썬 3.7 (2018년 발표)
- 데이터 클래스 (dataclasses): 데코레이터를 사용하여 클래스를 보다 쉽게 정의.
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int
p = Point(1, 2)
print(p)
- 비동기 컴프리헨션: 비동기 컴프리헨션 지원.
- 타임함수 개선: time 모듈에 time_ns() 함수 추가.
- 내장 breakpoint() 함수: 디버깅을 위한 새로운 내장 함수.
def foo():
breakpoint() # 디버깅 시작 지점
print("hello world")
foo()
파이썬 3.8 (2019년 발표)
- 할당 표현식 (The Walrus Operator): := 연산자를 사용하여 표현식 내에서 변수에 값을 할당.
if (n := len(a)) > 10:
print(f"List is too long ({n} elements)")
- Positional-only parameters: 함수의 파라미터가 오직 위치를 통해서만 전달될 수 있음을 명시.
def greet(name, /):
print(f"Hello, {name}")
greet("world") # "world"는 위치 인자로만 전달 가능
- f-strings 지원 개선: f-strings 내에서 =을 사용하여 표현식과 그 값을 출력할 수 있음.
반응형
파이썬 3.9 (2020년 발표)
- 합집합 타입 힌트: 타입 힌트에 합집합을 위한 새로운 문법 (| 사용).
def foo(bar: int | str):
print(bar)
foo(123) # int
foo("123") # str
- 딕셔너리 병합 및 업데이트 연산자: 딕셔너리를 병합(|)하고 업데이트(|=)하기 위한 연산자 도입.
x = {"a": 1}
y = {"b": 2}
z = x | y # 딕셔너리 병합
print(z)
- 새로운 문자열 메소드: str.removeprefix(), str.removesuffix() 메소드가 추가.(문자열의 접두사나 접미사를 쉽게 제거)
- 제너릭 타입 변수: list, dict 등이 제너릭 타입으로 사용 가능.
파이썬 3.10 (2021년 발표)
- 구조적 패턴 매칭: match 문과 case 문을 통한 패턴 매칭 도입.
match point:
case (0, 0):
print("Origin")
case (x, 0):
print(f"X={x}")
case (0, y):
print(f"Y={y}")
case (x, y):
print(f"Point ({x}, {y})")
- 타입 힌트 개선: 타입 힌트에 대한 여러 개선사항.
- 더 나은 오류 메시지: 오류 메시지가 더 이해하기 쉽도록 개선.
파이썬 3.11 (2022년 발표)
- 성능 향상: 파이썬 인터프리터의 성능이 대폭 향상됨.
- 더 나은 타이핑: 타입 힌팅 시스템의 추가 개선.
- 셀프 타입: 메소드 체이닝이나 팩토리 패턴을 위한 타입 힌트 개선.
from typing import Self
class MyClass:
def clone(self) -> Self:
return self.__class__()
파이썬 3.12
* 링크 : 파이썬 3.12의 특징과 개선사항 정리
- 정밀 타입 힌트: 타입 힌팅 시스템에 더 많은 개선과 정밀성 도입.
- 패턴 매칭 개선: 구조적 패턴 매칭 기능이 더욱 강화됨.
- 성능 개선 및 언어의 품질 개선: 다양한 성능 개선 및 언어 기능의 질적 향상.
버전 | 주요 특징 |
3.6 | 포맷 스트링 리터럴, 언더스코어 숫자 리터럴, 순서를 유지하는 딕셔너리 |
3.7 | 데이터 클래스, 비동기 컴프리헨션, 내장 breakpoint() 함수, 타임함수 개선 |
3.8 | 할당 표현식, 위치 전용 파라미터, f-strings 지원 개선 |
3.9 | 합집합 타입 힌트, 딕셔너리 병합 및 업데이트 연산자, 새로운 문자열 메소드, 제너릭 타입변수 |
3.10 | 구조적 패턴 매칭, 타입 힌트 개선, 더 나은 오류 메시지 |
3.11 | 성능 향상, 더 나은 타이핑, 셀프 타입 |
3.12 | 정밀 타입 힌트, 패턴 매칭 개선, 성능 및 언어의 품질 개선 |
반응형
'코딩취미 > Python' 카테고리의 다른 글
[PySide6] QTableWidget 사용방법 : 테이블생성 및 사진, 체크박스 넣는 코드 (0) | 2024.03.19 |
---|---|
[pyside6] Docker위젯속성설정 : DockWidgetFeature, addDockWidget (0) | 2024.03.13 |
[파이썬] 다양한 빈칸, 공백을 모두 제거하는 코드 (0) | 2024.02.14 |
[파이썬] pip 사용방법 : 패키지 설치/업그레이드/검색/삭제/용량 계산 코드 (0) | 2024.02.08 |
[파이썬] pygame과 opencv, pyqt의 동작방식의 차이점 정리 : 코드비교 (0) | 2024.01.26 |