<aside> 🤔
그것이 오리인지 조사하지 마라. 오리 같은 행동의 정확히 어떤 부분을 언어로 표현해야 하는지에 따라 오리처럼 꽥꽥거리는지, 오리처럼 뒤뚱뒤뚱 걷는지 등을 조사하라.
</aside>
파이썬에서는 완전히 작동하는 시퀀스형을 만들기 위해 어떤 특별한 클래스를 상속할 필요가 없다. 단지 시퀀스 프로토콜에 따르는 메서드를 구현하면 된다.
코드 어디에도 시퀀스 프로토콜을 사용한다고 정의하진 않았지만, 시퀀스처럼 작동하기 때문에 시퀀스인 것이다.
이 메커니즘을 덕타이핑이라고 한다.
__getattr__()
를 구현할 때는 __setattr()__
도 함께 구현해야 한다. (p.477 참고)
reduce는 초기값을 사용하는 게 좋다. 항등원을 사용해야 한다.
map은 generator를 반환해서 효율이 좋다
zip은 필요에 따라 튜플을 생성하는 제너레이터를 반환한다.
itertools.zip_longest()
함수는 다르게 동작한다.
극좌표대신 구면 좌표 (Spherical coordinate)을 이용
구면좌표는 초구면좌표(Hyperspherical coordinate)라고도 함
4차원 이상에서의 구를 초구(hypershpere)라고 하기 때문
구면 좌표가 뭔ㄷ…