Python Coding Convention PEP8

Reading time ~3 minutes


Coding Convention

코딩컨벤션이란 프로그래밍을 할 때 코드를 관리하기 쉽도록 하기 위한 일종의 규약입니다. 예를 들면, 들여쓰기의 칸 수를 정해 놓는다던지, int i = 0;에서 i, =, 0 사이의 띄어쓰기를 넣느냐 마느냐를 정해놓은 것입니다. 우리가 작성한 코드는 자신 이외에도 다른 많은 사람들이 보게됩니다. 그런데 코드의 규칙이 통일 되어있지 않으면 가독성도 떨어지고 관리하기 힘든 어려움이 있습니다. 그렇기 때문에 코딩컨벤션은 개발에서 고려해야할 중요한 요소 중 하나입니다. Python에서는 PEP 8이 대표적입니다.

PEP 8

PEP(Python Enhance Proposal)이란 파이썬을 개선하기 위한 개선 제안서를 뜻합니다. 그 중에서 PEP 8은 기본 Python 배포판의 라이브러리를 구성하는 Python 코드의 Coding Convention을 설명한다.

Code layout

  • 들여쓰기는 스페이스 네 칸을 이용한다.
  • 한 줄은 최대 79자 까지.
  • 최상위 함수와 클래스 선언 사이를 구분 짓기 위해 두 줄을 띄어 쓴다.
  • 클래스 내의 메소드들을 나누기 위해 한 줄을 띄어 쓴다.

Whitespace in Expressions and Statements

다음과 같은 상황에서는 여분의 공백 문자를 사용하지 않는다.

  • 괄호 내부에 연결되는 부분.
Yes: spam(ham[1], {eggs: 2})
No:  spam( ham[ 1 ], { eggs: 2 } )
  • 콤마, 세미콜론, 콜론의 이전 위치
Yes: if x == 4: print x, y; x, y = y, x
No:  if x == 4 : print x , y ; x , y = y , x
  • 괄호의 바로 이전 위치
Yes: spam(1)
No:  spam (1)
Yes: dct['key'] = lst[index]
No:  dct ['key'] = lst [index]
  • 연산자 주변에 한 개를 초과하는 공백 문자가 있는 경우
Yes:
x = 1
y = 2
long_variable = 3

No:
x             = 1
y             = 2
long_variable = 3

Comments

  • 코드의 내용과 동떨어진 주석은 아예 없는 편이 낫다.
  • 항상 코드의 변경에 맞추어 최신 상태를 유지해야 한다.
  • 주석은 완결된 문장 형태로 작성한다. (소문자로 된 식별자를 제외하고는 대문자로 시작한다.)
  • 문장의 마침표 다음에는 두 개의 공백을 넣는다.

Naming Conventions

  • i(I), o(O), l(L) 한 글자를 변수 이름으로 사용하지 않는다.
  • 클래스 이름은 CapWords 규칙을 이용한다.
  • 예외 이름은 클래스이므로 CapWords를 사용하지만 이름 끝에 “Error”라는 접미사를 붙인다.
  • 함수 이름은 소문자를 사용하고 ‘_‘로 구분한다.
  • 인스턴스 메소드의 첫 번째 인자는 항상 self이다.
  • 클래스 메소드의 첫 번째 인자는 항상 cls이다.
  • 메소드, 인스턴스 변수는 함수와 같다. public 경우에는 앞에 ‘-‘를 하나 붙인다.
  • 서브 클래스의 이름 충돌을 막기 위해 앞에 밑줄 2개를 붙인다.
  • 상수는 모듈 단위에서만 정의하며 모두 대문자로 하고 ‘_‘로 구분한다.

참고 자료

https://www.python.org/dev/peps/pep-0008/
http://kenial.tistory.com/902
https://spoqa.github.io/2012/08/03/about-python-coding-convention.html

Travis-ci를 이용하여 python 'Hello world' 작성하기

CI(Continuous Integration)지속적 통합은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경을 중앙 리포지토리에 정기적으로 통합하는 소프트웨어 개발 방식이다. 버그를 신속하게 찾아 해결하고, 소프트웨어 품질을 개선하고,...… Continue reading