기록하는삶
[파이썬/python] 코딩 컨벤션(Coding Convention), flake8 모듈, black 모듈 본문
AI/파이썬(Python)
[파이썬/python] 코딩 컨벤션(Coding Convention), flake8 모듈, black 모듈
mingchin 2022. 1. 19. 00:49728x90
반응형
파이썬도 일종의 언어이자 작성된 코드는 글에 해당하므로 문법처럼 꼭 지켜야만 실행되는 것은 아니더라도, 코드의 가독성과 통일성을 위해 존재하는 관습(convention)이 존재한다. 이는 PEP8을 기반으로 만들어지기 시작하였고, 아래와 같은 것들이 그 예시다. (PEP8 자세히보기)
- 함수명은 소문자와 snake_case의 표현을 사용한다.
- 클래스 명은 camelCase의 표현을 사용한다.
- 소문자 l(L), 대문자 O, 대문자 I(i)는 가독성을 위해 사용하지 않는다.
- 코드의 마지막 줄에는 항상 한 줄을 띈다.
- = 연산자 양 쪽으로 두 칸 이상 띄우지 않는다.
- 한 줄은 최대 79자까지만 작성한다.
- 불필요한 공백은 사용하지 않는다.
외의 추가적인 것이 궁금하다면, flake8 공식 문서를 참고하자.
이러한 PEP8 기반의 convention이 잘 준수되었는지를 확인하고, 또 수정할 수 있는 모듈이 flake8과 black이다. 모두 conda install을 이용해 다운받을 수 있다.
!conda install flake8
!conda install black
다음과 같이 convention을 지키지 않은 .py 파일에 대해 cmd 창에서 아래와 같이 입력하면 문제가 있는 부분들을 보여준다.
# flake8 파일명.py
!flake8 flake8_black.py
또한 black 모듈을 사용하면 flake8의 기준과 아주 동일하지는 않지만, 상당 부분 관습에 맞게 코드를 자동 수정해준다.
# black 파일명.py
!black flake8_black.py
많은 사람이 읽기 좋은 코드를 만들기 위해서는, 완성한 후에 관습이 잘 지켜지도록 black 모듈을 사용하는 습관을 가지면 좋을 것 같다.
728x90
반응형
'AI > 파이썬(Python)' 카테고리의 다른 글
[파이썬/python] 정규표현식(regex), re 모듈, 메타 문자 (0) | 2022.01.20 |
---|---|
[파이썬/python] collections 모듈, deque, Counter, defaultdict (0) | 2022.01.19 |
[파이썬/python] 함수의 parameter 전달 방식, call by object reference (0) | 2022.01.18 |
[파이썬/python] type hint, docstring, 관련 vscode extension (1) | 2022.01.18 |
[파이썬/python] print formatting, 형식에 맞추어 출력하기 (0) | 2022.01.17 |