그것이 오리인지 조사하지 말라. 오리 같은 행동의 정확히 어떤 부분을 언어로 표현해야 하는
지에 따라 오리처럼 꽥꽥거리는지, 오리처럼 뒤뚱뒤뚱 걷는지 등을 조사하라.
― 알렉스 마르텔리
comp
.
lang
.
python
뉴스그룹
,
2000년 7월 26일
이 장에서는 앞 장에서 구현한
2
차원
Vector2d
클래스를 한 단계 올려 다차원 벡터를 나타내
는 클래스를 생성한다. 벡터는 표준 파이썬의 불변 균일 시퀀스와 비슷하게 작동하고, 요소로
는 실수를 사용하며, 이 장을 마칠 때는 다음과 같은 기능을 지원할 것이다.
●
기본 시퀀스 프로토콜:
__
len
__()
과
__
getitem
__()
메서드
●
여러 항목이 있는 객체를 안전하게 표현
●
슬라이싱을 제대로 지원해 새로운 벡터 객체를 생성
●
포함된 요소의 값을 모두 고려한 집합 해싱
●
커스터마이즈된 포맷 언어 확장
그리고 시퀀스형에 일반적으로 사용되는 기법은 아니지만,
Vector2d
의 읽기 전용 프로퍼티를
대체하기 위해
__getattr__( )
메서드로 동적 속성 접근을 구현한다.
예제 코드를 보면서 프로토콜을 비공식 인터페이스로 사용하는 개념을 설명한다. 프로토콜이
시퀀스 특별 메서드
12
CHAPTER
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.