Python/Syntax
[Python] Dictionary 대신 사용할 수 있는 dataclass
koosco!
2022. 9. 10. 04:27
앞서 설명한 NamedTuple은 값을 수정하려 하면 AttributeError가 발생하기 때문에 딕셔너리 자료형과 마찬가지로 값을 수정할 때 발생하는 오류에 취약할 수 있습니다.
dataclass는 NamedTuple처럼 클래스로 사용하는 방식이 아닌 데코레이터를 사용하는 방법입니다.
from dataclasses import dataclass
@dataclass
class PersonInfo:
height: float
weight: float
name: str
person = PersonInfo(180, 75, 'koo')
NamedTuple과 동일한 방식으로 값에 접근할 수 있고, 값에 수정도 가능합니다.
print(person.height) # 180
person.height = 181
print(person.height) # 181
이렇게 Type Annotation을 사용하며 딕셔너리 자료형을 사용하는 방법에 대해 정리해 보았습니다.