파이썬 PEP 8 표준 코딩 스타일 가이드
사람마다 각자 코딩하는 스타일이 다르며 예민한 주제다.
소개하는 PEP 8는 파이썬 개선 제안서로 파이썬 코드 스타일 가이드다.
파이참(Pycharm), 구름 IDE 등에서 PEP 8에 따라 코딩 스타일을 규정하니 가급적 가이드에 맞춰 코딩하자.
다른 언어와 달리 파이썬은 중괄호({ })가 아닌 들여쓰기로 블록을 구분해 중괄호 위치를 고려하지 않아도 된다.
단 탭과 스페이스바 공백 네 개가 혼용되면 에러가 나오는 등 들여쓰기에 매우 민감하다.
따라서 파이썬 커뮤니티는 표준 스타일 가이드를 제시한다. 링크에 접속하면 전체 스타일 가이드를 볼 수 있다.
대표 가이드라인
1. 들여쓰기는 공백 문자 네 개로 하자.
2. 한줄의 최대 글자는 79자로 한다.
3. 최상위 함수와 클래스 정의들은 두 줄씩 띄우자.
4. 파일은 UTF-8 또는 아스키(ASCII)로 인코딩하자.
5. 한 import 문에선 모듈 하나만 불러온다.
6. 소괄호나 중괄호, 대괄호 사이에 추가로 공백을 주지 말고, 쉼표 안에도 공백을 주지 말자,
7. 클래스 이름은 카멜케이스(CamelCase)를 따르자.
8. 예외명은 Error로 끝내자.
9. 함수 이름은 separated_by_underscores처럼 소문자와 밑줄 문자(_)를 이용해서 짓자.
10. 비공개인 속성이나 메서드 이름은 밑줄 문자로 시작하자(_private).
상세 가이드라인
PEP 8 : 다른 사람과 원활히 협업하려면 공통된 작업 스타일이 편하다.
일관성있는 스타일은 수정하기도 쉬워 유지보수성이 좋다.
[공백, Whitespace]
- 한 줄의 문자 길이는 79자 이하로 맞추자.
- 함수와 클래스는 빈 줄 두 개로 구분한다.
예.
def one():
return "hello"
[빈줄]
[빈줄]
def two():
return "hello"
- 클래스에서 메서드는 빈 줄 하나로 구분한다.
- 변수 할 당 앞 뒤에 스페이스를 하나 사용한다.
moon = "moon"
- 리스트 인덱스, 함수 호출, 키워드 인수 할당에는 스페이스를 사용하지 않는다.
[이름 짓기]
- 함수, 변수, 속성 : lowercase_underscore
- 보호(protected) 인스턴스 속성 : _leading_underscore
- 비공개(private) 인스턴스 속성 : __double_leading_undersocre
- 클래스와 예외 : CapitalizeWord
- 모듈 수준 상수 : ALL_CAPS
- 클래스의 인스턴스 메서드에서는 첫번째 파라미터 (해당 객체 참조)의 이름을 self로 지정
- 클래스 메서드에서는 첫번재 파라미터 (해당 클래스 참조)의 이름을 cls로 지정
[표현식과 문장]
- if no a is b 보다는 if a is not b 를 사용
- if not somelist 처럼 빈 값은 암시적으로 False가 된다고 가정
- if somelist 처럼 값이 있는 리스트는 암시적으로 True가 된다고 가정
- 한 줄로 된 if문, for, while loop, except 복합문을 쓰지 않는다.
- 항상 파일의 맨 위에 import 문을 놓는다.
- 모듈 임포트시에는 항상 모듈의 절대 이름을 사용 import foo 대신 from bar import foo
- 상대적인 임포트를 해야 한다면 명시적인 구문을 서서 from . import foo 라고 한다.
- 임포트 순서 : 표준 라이브러리 모듈 > 서드파티 모듈 > 자신이 만든 모듈 / 각각의 하위 섹션에서는 알파벳 순서