dataclasses

김윤하·2023년 2월 22일

Python

목록 보기
5/11

dataclasses 란?

파이썬 3.7 버전에 나온 dataclasses는 init(), repr(), eq() 와 같은 매직 메서드를 사용자 정의 클래스에 자동으로 추가하는 데코레이터 함수를 제공한다. 파이썬 상에서 데이터를 다루면서 정합성과 코드 가독성 높이고 오류를 줄일 수 있는 방법 중 하나이다.

주요 함수

@dataclasses.dataclass(*, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False)

  • unsafe_hash: False (기본값) 면 : eq 와 frozen 의 설정에 따라 hash() 메서드가 생성됩니다.
  • frozen : True 면 immutable 한 객체로 변함

@dataclasses.field(*, default=MISSING, default_factory=MISSING, init=True, repr=True, hash=None, compare=True, metadata=None, kw_only=MISSING)

  • default_factory: 제공되면, 이 필드의 기본값이 필요할 때 호출되는 인자가 없는 콜러블이어야 합니다. 여러 용도 중에서도, 이것은 아래에서 논의되는 것처럼 가변 기본값을 가진 필드를 지정하는 데 사용될 수 있습니다. default 와 default_factory 를 모두 지정하는 것은 에러입니다.
(example)

@dataclass
class C:
    a: int
    b: int = 0
    mylist: list[int] = field(default_factory=list)

c = C(1)
c.mylist += [1, 2, 3]

https://docs.python.org/ko/3/library/dataclasses.html#module-dataclasses

profile
data engineer

0개의 댓글