파이썬 데이터 클래스는 @dataclass 데코레이터 가진 일반 파이썬 클래스. 데이터 보유 목적으로 특별히 생성. 파이썬 3.7부터 dataclass 내장 모듈로 데이터 클래스 제공. 일반 파이썬 클래스 대비 여러 이점, 이 글에서 탐구. 예제 코드와 데이터 클래스로 수행하고픈 흔한 연산 두어 가지도 살펴봄.
목차
데이터 클래스 사용 이점
왜 일반 파이썬 클래스 대신 데이터 클래스 써야 할까? 먼저 파이썬 데이터 클래스 제공 이점 몇 가지 보자.
최소한의 코드 필요
@dataclass 데코레이터가 눈에 보이는 코드 추가 없이 클래스에 많은 기능 추가. 데이터 클래스 매우 콤팩트하면서 많은 유용 기능 제공. 데이터 보유할 필드만 정의하면 됨. 어떤 함수도 정의할 필요 없음.
비교
두 파이썬 데이터 클래스는 ==로 비교 가능. 소위 던더 메서드 __eq__ 자동 구현되기 때문. 일반적으로 이 특수 메서드 구현한 파이썬 객체면 동일 타입 다른 객체와 비교 가능.
데이터 클래스 출력
마찬가지로 __repr__ 구현되어 데이터 클래스 출력하면 멋진 표현 나옴. 디버깅 시 특히 유용.
데이터 클래스는 타입 힌트 필요
데이터 클래스는 파이썬 제공 새로운(ish) 타입 시스템 중심으로 구축. 타입 힌트 사용으로 코드 버그·예상치 못한 동작 가능성 감소. 변수에 저장되어야 할 데이터 타입 본질적으로 선언.