기록하는삶

[파이썬/python] 코딩 컨벤션(Coding Convention), flake8 모듈, black 모듈 본문

AI/파이썬(Python)

[파이썬/python] 코딩 컨벤션(Coding Convention), flake8 모듈, black 모듈

mingchin 2022. 1. 19. 00:49
728x90
반응형

파이썬도 일종의 언어이자 작성된 코드는 글에 해당하므로 문법처럼 꼭 지켜야만 실행되는 것은 아니더라도, 코드의 가독성과 통일성을 위해 존재하는 관습(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 모듈 사용해 변경 후

많은 사람이 읽기 좋은 코드를 만들기 위해서는, 완성한 후에 관습이 잘 지켜지도록 black 모듈을 사용하는 습관을 가지면 좋을 것 같다.

728x90
반응형