본문 바로가기
코딩취미/Python

[파이썬 버전별 주 특징 정리] 3.6/3.7/3.8/3.9/3.10/3.11/3.12

by 브링블링 2024. 3. 13.
반응형

파이썬 버전별 특징 정리

파이썬은 버전이 계속 업데이트 되면서 기능들이 개선되고 있습니다. 이 포스팅에서는 파이썬 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 정밀 타입 힌트, 패턴 매칭 개선, 성능 및 언어의 품질 개선
반응형