팀 피터스(Tim Peters)가 파이썬의 설계 철학을 짧은 격언 19줄로 정리한 문서로, PEP(Python Enhancement Proposal) 20으로 등록돼 있다. 인터프리터에서 import this를 실행하면 볼 수 있다. 파이썬 코드뿐 아니라 어떤 언어로 짜든 참고할 만한 원칙이다.
자주 인용되는 줄
- Explicit is better than implicit. 숨은 동작보다 드러난 코드가 낫다. 마법 같은 자동 처리보다 읽으면 바로 보이는 코드를 고른다 → 최소 놀람의 원칙
- Simple is better than complex. Complex is better than complicated. 단순할 수 있으면 단순하게, 복잡함이 피할 수 없다면 적어도 뒤엉키지 않게 한다 → KISS 원칙
- Flat is better than nested. 깊은 중첩보다 평평한 구조가 읽기 쉽다 → 보호 구문
- Readability counts. 코드는 쓰는 횟수보다 읽히는 횟수가 훨씬 많다 → 인지 부하
- Errors should never pass silently. Unless explicitly silenced. 에러를 조용히 삼키지 말고, 무시할 때는 의도적으로 드러내서 무시한다 → 예외 삼키기
- In the face of ambiguity, refuse the temptation to guess. 애매하면 추측하지 말고 명확히 하거나 에러를 낸다
- There should be one—and preferably only one—obvious way to do it. 같은 일을 하는 방법이 여럿이면 읽는 사람이 모두 알아야 한다
- If the implementation is hard to explain, it's a bad idea. 설명하기 어려운 구현은 다시 생각해 본다
예
# 암묵적: 빈 리스트, 0, None이 모두 같은 분기로 간다
if not value:
...
# 명시적: 무엇을 확인하는지 드러난다
if value is None:
...파이썬다운 예외 처리 관용구는 EAFP와 LBYL에서 다룬다.