전체 내용은 여기 참고
Whitespace
- 탭이 아닌 스페이스 사용
- 4 스페이스로 들여쓰기
- 한 줄의 길이는 79자 이하
- 표현식을 여러 줄에 나눠 쓸 경우 일반적인 들여쓰기에서 한 수준 추가
- 함수와 클래스는 빈 줄 두 개로 구분
- 메서드는 빈 줄 하나로 구분
- 리스트 인덱스, 함수 호출, 키워드 인수 할당에는 스페이스 미사용
- 변수 할당 앞뒤에 스페이스 하나만 사용
Naming
- 함수, 변수, 속성은
lowercase_underscore
- Protected 속성은
_leading_underscore
- Private 속성은
__double_leading_underscore
- 클래스와 예외는
CaptalizedWord
- 모듈 수준 상수는
ALL_CAPS
- 클래스 인스턴스 메서드의 첫 번째 파라미터 이름은
self
- 클래스 메서드의 첫 번째 파라미터 이름은
cls
Expression & Statement
- 긍정 표현식의 부정형(
if not a is b
) 보다는 인라인 부정(if a is not b
) 형태 사용 - 길이를 확인해 빈 값을 확인(
if len(a_list) == 0
)하지 말고, 암시적False
를 확인(if not a_list
) - 한 줄로 된
if
,for
,while
,except
문 등을 사용하지 말고 여러 줄로 나눠서 명료하게 작성 - 항상 파일의 가장 위에
import
- 현재 모듈의 경로를 기준으로 상대 경로로 된 이름을 사용하지 말고 절대 이름을 사용해 모듈 임포트 — 예를 들어
bar
패키지의foo
모듈을 임포트하려면 그냥import foo
가 아닌from bar import foo
- 상대적인 임포트를 해야 할 경우 명시적인 구문을 써서
from . import foo
- 임포트 순서는 표준 라이브러리 모듈 - 서드파티 모듈 - 작성 모듈 순으로 하고, 알파벳 순으로 정렬