파이썬 dataclass frozen을 이용하여 불변 객체를 흉내내 봅시다.
불변 객체는 생각보다 중요합니다. 예를 들자면, 해시에서 키를 넣을 때, 변할 수 있는 객체면 곤란해 질 수 있습니다. 왜냐하면 객체의 내용이 변하면 hash값이 변하기 때문입니다. 하지만, hash에서 탐색하기 시작하는 위치는 안 바뀌기 때문에 (재해싱을 하지 않는 이상) 이상하게 동작하게 됩니다. python에서는 immutable을 흉내낼 수 있는 것이 있는데요. dataclasses의 frozen을 True로 설정하면 가능합니다. 간단하게 알아보겠습니다. 3.7부터 추가된 dataclass를 이용해서, immutable을 흉내낼 수 있다고 하였습니다. 잠깐. immutable의 대표적인 것은 tuple이 있습니다. 반면, mutable은 list가 있습니다. list는 append 등으로 원소를 ..
코딩/파이선
2023. 6. 20. 23:57
최근댓글