클래스는 다양한 객체 표현을 제공하고, 객체 고유의 포맷 코드를 구현하고, 읽기 전용 속성을
노출하며, 집합이나 매핑에 사용할 수 있도록
hash()
를 지원한다.
11
.
13
요약
이 장에서는 특별 메서드와 관례를 적용해서 파이썬 세계와 잘 어울리는 클래스를 생성하는 방
법을 설명했다.
vector2d_v3.py
(예제
11
-
11
)은
vector2d_v0.py
(예제
11
-
2
)보다 파이썬다울까? 물
론
vector2d_v3.py
의
Vector2d
클래스가 파이썬 특징을 더 많이 보여 주기는 한다. 그러나
Vector2d
의 첫 버전과 마지막 버전 중 무엇이 더 나은지는, 이 클래스를 사용하는 환경에 따라
달라진다. 팀 피터스의 파이썬의 선에서는 다음과 같이 이야기한다.
단순함이 복잡함보다 낫다.
객체는 요구사항을 만족시키는 한 가장 단순해야 하며, 언어의 기능을 모두 뽐낼 필요는 없다.
애플리케이션에 사용할 코드라면 사용자를 지원하는 데 필요한 부분에만 집중하면 된다. 다른
프로그래머가 사용할 라이브러리에 들어갈 코드라면 파이썬주의자들이 기대하는 수준을 지원
하기 위한 특별 메서드들을 구현하는 편이 맞다. 예를 들어
__eq__()
는 비즈니스 요구사항을
지원하는 데는 필요 없겠지만, 클래스를 테스트하기 더 쉽게 해 준다.
이 장에서 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.