Python / Package / flake8 - PEP(Python Enhance Proposal) 검증 패키지 사용법
Style Guide for Python Code
여러 명이 공동으로 파이썬 코딩을 할 때, 각자의 스타일이 다르면 문제가 생길 수 있습니다. 그래서 협업을 수월하게 할 수 있도록 몇 가지 규칙을 정놓았는데, 이를 PEP(Python Enhance Proposal)라고 합니다. 몇 가지 규칙을 나열해보면...
- Use 4 spaces per indentation level. : 들여쓰기는 4칸의 공백
- Limit all lines to a maximum of 79 characters. : 한 줄에는 최대 79 글자
- Code in the core Python distribution should always use UTF-8 : 인코딩을 UTF-8
이런 규칙들을 모아 놓은 문서는 여기입니다.
flake8
코드 스타일을 암기하고 사용하고, 점검하는 건 번거로운 작업입니다. 이를 도와주는 패키지가 flake8입니다. 코드를 분석하고, 규칙에서 벗어나는 것이 있다면 알려줍니다.
flake8 기본 정보는 다음과 같습니다.
C:\Users\JB\Documents\Python>pip show flake8 Name: flake8 Version: 3.7.7 Summary: the modular source code checker: pep8, pyflakes and co Home-page: https://gitlab.com/pycqa/flake8 Author: Tarek Ziade Author-email: tarek@ziade.org License: MIT Location: c:\users\jb\appdata\local\programs\python\python37-32\lib\site-packages Requires: mccabe, pycodestyle, pyflakes, entrypoints Required-by:
pip로 설치할 수 있습니다.
pip install flake8
flake8 사용법
예를 들어 다음과 같은 코드를 가진 hello.py가 있다고 하면...
print( "Hello World" ) a = 1 print(a)
검사 결과는 다음과 같습니다.
C:\Users\JB\Documents\Python>flake8 hello.py hello.py:1:7: E201 whitespace after '(' hello.py:1:21: E202 whitespace before ')' hello.py:2:2: E221 multiple spaces before operator hello.py:3:9: W292 no newline at end of file
'(' 다음에 공백이 필요 없고, ')' 앞에 공백이 필요 없고, 등호 앞의 공백을 한 칸으로 하고, 마지막에 빈 줄을 넣으라고 합니다. 이를 다 수정한 코드는 다음과 같습니다.
print("Hello World") a = 1 print(a)
첫 번째 코드나 두 번째 코드 모두 실행에는 문제가 없지만, 두 번째처럼 하면 공동 작업이 편하다는 것이죠.
권장되는 스타일이 마음에 들지 않을 수도 있지만, 가급적 지켜 나가는 게 나중을 위해 좋다고 생각합니다.(개인적으론 들여쓰기는 2칸의 공백을 좋아합니다.)