시퀀스,해킹,해시,슬라이스

매일 공부(ML)·2023년 1월 16일
0

Fluent Python

목록 보기
65/130

객제지향 상용구

시퀀스,해킹,해시,슬라이스

다차원 벡터를 나타내는 클래스를 생성해서 2차원 Vector2d 클래스를 개선할 것이고, 표준 파이썬의 불변 균일 시퀀스와 비슷하게 작동할 것이며, 실수를 요소로 가지게 된다.

지원기능

  • 기본 시퀀스 프로토콜: lengetitem() 메서드

  • 여러 항목을 가진 객체를 안전하게 표현

  • 슬라이싱을 지원해서 새로운 벡터 객체 생성

  • 포함된 요소 값을 모두 고려한 집합 해싱

  • 커스터마이즈된 포맷 언어 확장


시퀀스형에 일반적으로 사용되는 기법은 아니지만, Vector2d의 읽기 전용 프로퍼티를 교체하기 위해서 getattr()메서드로 동적 속성 접근을 구현하고, 코드 중간에 프로토콜을 비공식 인터페이스로 사용하는 것에 대한 설명을 하고, 프로토콜이 덕 타이핑과 어떻게 연관되었는지와 직접 자료형을 만들 때 어떤 영향을 미치는지 설명한다.


Vector: 사용자 정의 시퀀스형

우리의 전략은 상속이 아니라 구성을 이용해서 벡터를 구현하는 것이고, 요소들을 실수형 배열에 저장하여 벡터가 불변 균일 시퀀스처럼 작동하게 만들기 위해서 필요한 메서드를 구현한다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글