dataclass는 주로 데이터를 저장하기 위해 사용되며, 이해하기 쉽고 유지보수하기 쉬우며 디버깅하기 쉬운 class를 생성할 수 있음
from dataclasses import dataclass
@dataclass
class User:
number: int
name: str
프로그램이 실행되려면 값이 숫자인가 문자열인가 등에 따라 값을 저장하는 방식이나 계산하는 방법이 다르기 때문에, 컴퓨터는 각 변수에 어떤 종류의 값이 들어가 있는지 알아야 함
이러한 값의 종류를 자료형(data type) 혹은 타입(type)이라고 함
기존 내장 자료 구조(list, tuple, dictoinary, set 등)는 사용하기 간편하다는 장점이 있음
class를 이용한 방법은 type-safe해지기 때문에 프로그램 실행 중에 오류가 발생할 확률이 적어지는 장점이 있음
dataclass는 Python 3.7에서 소개된 decorator로, 기본적으로 데이터를 저장하기 위해 사용되는 클래스를 생성할 때 사용합니다. 이 decorator는 클래스의 속성과 속성의 유형에 기반해 자동으로 여러 특수 메소드(예:
__init__
,__repr__
,__eq__
)를 생성합니다.
- 작성해야 할 코드량을 줄입니다. dataclass를 사용하면 class의 속성과 속성의 타입만 정의하면, 특별한 method들이 자동으로 생성됩니다. 속성이 많은 경우 이를 사용하면 특히 유용합니다.
- 데이터를 저장하기 위해 사용될 수 있는 클래스를 쉽게 생성할 수 있습니다. dataclass를 사용하면, 데이터를 저장하기 위한 코드가 짧고 이해하기 쉬운 class를 쉽게 생성할 수 있습니다.
- class의 자기 제어성을 높일 수 있게 해줍니다. 특별한 method들이 자동으로 생성되기 때문에, 이들을 직접 구현할 필요가 없기 때문입니다. 이는 class의 핵심 기능에 집중하기 쉬워집니다.
- 디버깅하기 쉬운 class를 작성하기 쉽게 해줍니다. dataclass를 사용하면, 오브젝트의 속성들을 쉽게 출력할 수 있기 때문에, 코드 디버깅에 도움이 됩니다. 이는
__repr__
method가 자동으로 생성되기 때문입니다.