[Fluent Python] 1장 파이썬 데이터 모델
1장 파이썬 데이터 모델
기억에 남는 것들
namedtuple
아래와 같은 형식으로 튜플에 이름을 붙여서 레코드처럼 사용할 수 있다.
import collections
Card = collections.namedtuple('Card', ['rank', 'suit'])
card = Card('7', 'spades')
doctest 지시자
책에서 정확한 출력결과를 가져오기 위해서 코드를 사용하면서 doctest를 통과하기 위한 지시자로 이용했다고 하나, 이해가 잘 안된다.
>>> for card in deck: # doctest: +ELLIPSIS
... print(card)
문자열 표현
책에서는 %연산자와 str.format()를 둘 다 이용함. % 연사자 사용시 %r를 이용함.
len()이 메서드가 아닌 이유
파이썬의 선 (The Zen of Python)에서 ‘실용성이 순수성에 우선한다(practicality beats purity)’라고 서술한 것처럼 len()은 특별취급받는다. CPython 구현상 내장 객체는 C 언어 구조체의 필드를 읽어오는 값싼 연산이며, len은 매우 빈번하게 호출되는 연산으로 효율적으로 작동하도록 구현되었다. 물론 __len__()
메소드를 이용하여 동작을 직접 정의할 수도 있다.