관리 메뉴

웹개발자의 기지개

[Python] dataclass 의 사용법 본문

python

[Python] dataclass 의 사용법

웹개발자 워니 2025. 5. 15. 23:31

java 의 경우처럼 데코레이션 쓰임새이다.

 

@dataclass(frozen=True)  : 한번 객체 생성하면 필드 수정이 불가 immutable 

(딕셔너리 형태로 p[a])

 

 

@dataclass  : 객체 생성후에 해당 필드 수정은 가능 mutable

p1 = Point(1, 2)
d = {p1: "A point"}

 

 

from dataclasses import dataclass
@dataclass(frozen=True)
class Point:
    x: int
    y: int

p = Point(1, 2)
print(p.x)  # 1
p.x = 3     # ❌ 에러 발생! (FrozenInstanceError)

 

 

p1 = Point(1, 2)
d = {p1: "A point"}
print(d[p1])  # "A point"

# 만약 frozen=False였다면, Point는 mutable → dict key로 사용 불가!

 

 

 

https://chatgpt.com/share/6825f93f-bcd8-8011-9e40-7c7b7205258a

 

ChatGPT - Dataclass frozen 설명

Shared via ChatGPT

chatgpt.com

 

 

https://www.daleseo.com/python-dataclasses/

 

파이썬의 데이터 클래스 사용법 (dataclasses 모듈)

Engineering Blog by Dale Seo

www.daleseo.com

 

 

 

Comments