패스잇
백엔드 개발 · 기초

Python의 dataclass의 특징과 사용법에 대해 설명해주세요.

힌트 · 보일러플레이트 코드 감소와 자동 생성 메서드를 생각해보세요.

데코레이터자동 생성불변 객체비교 연산__init__

모범답안

네, Python의 dataclass에 대해 설명드리겠습니다.

dataclass는 Python 3.7부터 도입된 데코레이터입니다. 클래스를 만들 때 반복적으로 작성해야 하는 __init__, __repr__, __eq__ 같은 메서드들을 자동으로 생성해줘서 코드 양을 줄여줍니다.

사용법은 간단합니다. 클래스 선언 위에 @dataclass 데코레이터를 붙이고, 클래스 내부에 필드들을 정의하면 됩니다. 예를 들어, Point 클래스를 만들 때 xy 좌표를 필드로 정의하면, dataclass가 자동으로 __init__ 메서드를 만들어줘서 Point(x=1, y=2)처럼 객체를 생성할 수 있습니다.

dataclass는 기본적으로 mutable 객체를 생성하지만, frozen=True 옵션을 사용하면 immutable 객체를 만들 수도 있습니다. 또한, 비교 연산도 자동으로 지원해서 객체 간의 동등성을 쉽게 비교할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Python 면접 질문

← Python 면접 질문 전체 보기