[Python] PEP 8 스타일 가이드

cdwde·2021년 4월 28일
0
post-custom-banner

PEP 8이란?

파이썬 코드의 작성 규칙

🎈code layout

  • 들여쓰기 할 때는 4개의 공백 사용

  • 모든 행은 최대 79자로 제한

  • 최상위 함수와 클래스는 2개의 빈 줄로 구분

  • 클래스 내에서 메서드는 1개의 빈 줄로 구분

  • import는 각각의 행으로 구분

  • 표준 라이브러리 import / 관련된 서드파티 import / 로컬 어플리케이션, 자체라이브러리 import로 그룹화하기
    (그룹 사이에 빈 줄 넣어주기, 각각의 세션에서는 알파벳 순서로)

  • absolute import 권장

  • 변수 할당 앞 뒤는 스페이스를 한 칸 사용

  • 리스트 인덱스, 함수 호출, 키워드 인수를 표시할 때 (기본값과 결합할 때 제외) 스페이스 사용하지 않기

  • 소괄호, 중괄호, 대괄호 바로 내부 및 세미콜론 바로 앞에서 공백 넣지 않기

  • 슬라이스에서는 두 콜론에 동일한 간격 적용

  • 우선순위가 다른 연산자를 사용하는 경우 우선순위가 가장 낮은 연산자 주위에 공백 추가

🎈 nameing conventions

  • 모듈 이름은 되도록 짧게, 모두 소문자로

  • 함수, 변수, 속성: lower_underscore

  • protected 인스턴스 속성: _leading_underscore

  • private 인스턴스 속성: __double_leading_underscore

  • 클래스와 예외: CamelCase

  • 예외 이름 뒤에 Error 붙이기

  • 상수는 단어를 구분하는 밑줄과 함께 모두 대문자로

  • 인스턴스 메소드의 첫번째 파라미터의 이름을 self로 지정

  • 클래스 메소드의 첫번째 파라미터의 이름을 cls로 지정

🎈 programming recommendations

  • 예외 사용할 때는 특정 예외 언급하기

  • None을 비교할 때는 is나 is not 사용

  • try /except 절에서 try절을 필요한 코드를 최소로

  • 함수에서 모든 return문은 표현식을 반환하거나 반환하지 않아야 하기 때문에 값을 반환하지 않는 경우에는 명시적으로 return None으로 지정하기

  • 문자열 모듈 대신 문자열 메서드 사용하기 ( ex) startwith, endwith..)

  • 객체 유형 비교는 isinstance() 사용하기

❗ vscode에서 PEP 8 검사하기 (black)

설치하기

pip install black

확인하기

black <file_name> --check

pep 8에 맞게 변경하기

코드를 저장할 때마다 자동으로 포맷팅하게 세팅하려면 settings.json에
아래 코드 추가하기

{
	"editor.formatOnSave": true,
	"python.formatting.provider": "black",
}

참고
https://www.python.org/dev/peps/pep-0008
https://spoqa.github.io/2012/08/03/about-python-coding-convention.html
https://www.daleseo.com/python-black/

post-custom-banner

0개의 댓글