본문 바로가기
Development/Python

Python Coding Convention: PEP 8

by IMCOMKING 2019. 12. 17.

PEP 8

https://www.python.org/dev/peps/pep-0008/

이름 짓기

- 클래스: ClassName

- 예외 처리: WrongNameError

- 상수: CONSTANT_VALUE

- public 함수나 변수: lower_case

- private 함수나 변수: _lower_case

- 패키지나 모듈: lower_short


- __이름: 은 특별한 python의 기능이 생긴다. 상속된 다른 class의 변수와 이름이 겹치지 않기위한 것으로, 다른이름으로 자동 변경된다.


이름 금지사항

- mixedCase

- mixedCASE

- Capitalized_Words_With_Underscores



기본적인 Coding Convention

1. 모든 문자열에는 큰따옴표를 쓴다. 주석에는 """ 을 """ 사용한다.
    PEP8에서는 큰따옴표와 작은따옴표는 동일하며, 자체 규칙을 세울것을 권장한다.


2. 모든 함수에는 input type과 output type을 명시한다.

python 3.5이상에서 가능한 기능으로, 그 이전 버전을 반드시 써야할 것이 아니라면 권장된다.


3. python 버전은 3.6 이상을 요구한다.

latest버전을 쓰는 것이 좋다.


4. 2개 이상의 복잡한 문자열 조합에는 f-string을 사용한다.

1가지만 조합된 문자열은 +" " 을 사용해도 무방하다.


5. 주석이나 함수간 공백에 2칸 or 2줄씩을 유지한다.

이는 PEP8을 따른 것이다.


6. requirements.txt에는 버전을 명시한다.

==뿐만 아니라 ~= 이나 * 도 사용 가능하다.




함수에 인자와 리턴 타입 명시하기

def _build_uid(faq_uid: str, non_uid: str, faq_first: bool=False) -> str:

위와 같은 방식으로 각 인자와 리턴에 대해 타입을 명시할 수 있다. 이는 컴파일 및 실행에는 아무 영향을 미치지 않지만, IDE에서 파싱하여 가이드를 주거나 documentation 할 때 자동 파싱되어 유용하게 사용된다.

https://docs.python.org/3/library/typing.html



















댓글