목차

Python Tricks The Book

세줄 요약

클래스 변수 대 인스턴스 변수의 함정

5장 파이썬의 일반 데이터 구조

일반적인 데이터 구조에 대한 지식을 쌓기 위해 좋은 책을 찾고 있다면 스티븐 스키너(Steven S. Skiena)의 The Alogrithm Design Manual을 적극 권한다.

5.2 배열 데이터 구조

list: 가변 동적 배열
tuple: 불편 컨테이너
array.array: 기본적인 타입 지정 배열
str: 유니코드 문자의 불변 배열
bytes: 단일 바이트의 불변 배열
bytearray: 단일 바이트의 가변 배열

5.3 레코드, 구조체, 데이터 전송 객체

dict: 간단한 데이터 객체
tuple: 불변 객체 그룹
collections.namedtuple: 편리한 데이터 객체
typing.NamedTuple: 개선된 네임드튜플
struct.Struct: 직렬화된 C 구조체
types.SimpleNamespace: 세련된 속성 접근

6장 반복과 이터레이션

이터레이터는 컨테이너의 내부 구조와 완전히 분리된 상태에서 컨테이너의 모든 항목을 처리할 수 있는 공통 인터페이스를 제공한다.

snippet.python
class Repeater:
  def __init__(self, value):
    self.value = value
 
  def __iter__(self):
    return self
 
  def __next__(self):
    return self.value
snippet.python
def repeater(value):
  while True:
    yield value

제너레이터 함수는 파이썬의 훌륭한 기능이므로 자신의 프로그램에서 제너레이터 함수를 사용하는 것을 주저해서는 안 된다.

요점 정리

제너레이터 표현식

제너레이터 표현식 때 리스트 내포식

snippet.python
listcomp = ['hello' for i in range(3)]
genexpr = ('hello' for i in range(3))

7장 딕셔너리 트릭

EAFP (Easier to Ask for Forgiveness than Permission) - 허가보다는 용서를 구하는 것이 쉽다

snippet.python
def greeting(userid):
  try:
    return 'Hi %s!' % name_for_userid[userid]
  except KeyError:
    return 'Hi there'
snippet.python
def greeting(userid):
  return 'Hi %s!' % name_for_userid.get(userid, 'there')

8장 파이썬다운 생산성 향상 기법

요점 정리

9.1 파이썬 개발자를 위한 무료 주간 팁

dbader.org/newsletter


관련 문서