개요에서 말했던 것처럼, Python 코드는 '가장 아름다운 하나의 답이 존재한다'라는 철학을 만족시키는 하나의 스타일로 진화해 왔습니다. 이 '가장 아름다운 하나의 답'을 공식적으로 정리해 두는 곳이 있는데, 바로 PEP(Python Enhancement Proposals, 파이썬 개선 제안서)입니다. 코딩 컨벤션은 개발 조직마다 하나씩 존재하긴 하지만, 일반적으로 그 언어의 문화를 공유하는 공동체에서 인정하는 컨벤션은 대부분 통일되어 있으며, 그런 것들이 PEP에서 지속적으로 문서화되고 있습니다.

PEP는 파이썬 개선 제안서라는 이름대로, Python을 개선하기 위한 제안서를 뜻합니다. PEP1, PEP2, PEP3처럼 넘버링 방식으로 이름짓습니다. PEP에 대해 다루고 있는 PEP 1에서는 PEP를 아래의 3가지로 구분합니다.

  • Standard Track : 새로운 기능이나 구현 제안
  • Informational : 디자인 이슈나 일반적인 지침, 커뮤니티에 정보를 제안. 새로운 기능을 제안하지는 않음
  • Process : Python 개발 과정의 개선을 제안

PEP8

PEP8은 Python 코드를 위한 스타일 가이드를 정리해 둔 Process 타입의 제안서입니다. 수많은 PEP 문서들 중 가장 많은 조회수를 기록했고, PEP가 유명해진 이유입니다. 대부분의 Python 개발자들이 사용하는 일관된 스타일PEP8을 기본으로 하고 있습니다. PEP8에서는 아래와 같은 요소들에 대한 스타일 가이드를 다룹니다.

  • Indentation
  • Tab vs Space
  • 한 라인의 최대 글자 수
  • 각 요소(함수, 메소드, 클래스 등) 간의 blank line 갯수
  • import 스타일
  • 문자열을 감싸는 따옴표
  • Block 주석과 Inline 주석
  • 네이밍 컨벤션
  • ...

PEP20

PEP20은 Python 개발을 위한 철학을 다루고 있는 Informational 타입의 제안서입니다. Python 인터프리터에서 import this를 작성하면 나오는 이스터에그형 출력문과 동일한 내용입니다.

  • Beautiful is better than ugly(아름다움이 추함보다 낫다).
  • Explicit is better than implicit(명시가 암시보다 낫다).
  • Simple is better than complex(단순함이 복잡함보다 낫다).
  • Readability counts(가독성을 계산하라).
  • ...

'Python 계열 > Python 레거시 글' 카테고리의 다른 글

[Python] 입출력  (0) 2018.07.10
[Python] Comprehension  (0) 2018.07.09
[Python] 패키지  (0) 2018.07.07
[Python] 모듈  (0) 2018.07.06
[Python] 사용자 정의 에러  (0) 2018.07.05

+ Recent posts