PEP 8
파이썬 개선 제안서 #8
파이썬 코드를 어떻게 구성할 지 알려주는 스타일 가이드
1. 화이트 스페이스
파이썬에서 화이트스페이스(공백)은 문법적으로 의미가 있다.
- 탭이 아닌 스페이스로 들여쓰기
- 문법적으로 의미 있는 들여쓰기는 각 수준마다 스페이스 4개를 사용하기
- 한 줄의 문자 길이가 79자 이하
- 표현식이 길어저 다음 줄로 이어지면 일반적인 들여쓰기 수준에서 추가로 스페이스 4개 사용
- 파일에서 함수와 클래스는 빈 줄 두 개로 구분
- 클래스에서 메서드는 빈 줄 하나로 구분
- 리스트 인덱스, 함수 호출, 키워드 인수 할당에는 스페이스를 사용하지 않음
- 변수 할당 앞뒤에 스페이스를 하나만 사용
2. 명명
언어의 부분별로 독자적인 명명 스타일을 제안한다.
- 함수, 변수, 속성은 lowercase_underscore 형식을 따름
- 보호 인스턴스 속성은 _leading_underscore 형식을 따름
- 비공개 인스턴스 속성은 __double_leading_underscore 형식을 따름
- 클래스와 예외는 Capitalizedword형식을 따름
- 모듈 수준 상수는 ALL_CAPS 형식을 따름
- 클래스의 인스턴스 메서드에서 첫 번째 피라미터의 이름을 self로 지정
- 클래스 메서도에서 첫 번째 피라미터의 이름을 cls로 지정
3. 표현식과 문장
파이썬의 계명 : 어떤 일을 하는 확실한 방법이 있어야 한다.
- 긍정 표현식의 부정(if not a is b) 대신,인라인 부정(if a is not b) 사용
- 길이를 확인(if len(somelist)==0)하여 빈값을 확인 하지 않고, if not somelist 로 사용하여 빈 값은 암시적으로 false가 된다고 가정한다.
- 값이 비어 있지 않다면, if somelist:문은 암시적으로 True이다
- 한 줄로 된 if문, for와 while루프, except 복합문을 쓰지 않는다
- 항상 파일의 맨 위에 import문을 놓는다.
- 모듈을 임포트 할 때는 항상 모듈의 절대 이름을 사용하며, 현재 모듈의 경로를 기준으로 된 상대 경로 이름은 쓰지 않는다.
(import foo (x) >> from bar import foo (o))
- 상대적인 임포트의 경우 명시적인 구문을 써서 from . import foo 라고 한다.
- 임포트는 표준 라이브러리 모듈 > 서드파티 모듈 > 자신이 만든 모듈 순으로 구분한다. 각각의 하위는 알파벳순으로 임포트 한다.
Pylint (www.pylint.org) 는 파이썬 소스 코드를 정적으로 분석하는 도구이다.자동으로 PEP 8 스타일 가이드를 강요하고. 파이썬 프로그램에서 일어나는 많은 유형의 일반적인 오류를 검출한다.