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
'Development > Python' 카테고리의 다른 글
Python Concurrency Programming (4) | 2020.01.09 |
---|---|
Python 프로젝트 배포 및 다른 패키지 가져오기 (2) | 2020.01.09 |
Python game programming. Pygame + PyBox2D (0) | 2017.01.16 |
Python에서 유용한 라이브러리 (2) | 2016.02.23 |
Sampling, Detailed Balance, Gibbs Sampling, Rejection Sampling MCMC, Dirichlet Process, RBM, Particle Filtering (0) | 2015.01.27 |
댓글