Python PEP8
안녕하세요
오늘은 Python 기본 코드 가이드라인으로 유명한 PEP8에 대해서 알고 있는 바를 공유 드리려고 합니다.
PEP8
- Style Guide for Python Code
- Python 코드를 어떻게 구상해야하는지 가이드라인
목적
- 검색 효율성( Grepability )
- 특정 파일, 코드에서 키워드 인자를 찾는 경우에는 띄어쓰기를 사용하지 않는다.
- 변수에 처음 값을 할당할 때에는 띄어쓰기 권고
1 2 3 4 5 6
def test_func(param1): print(param1) if __name__ == "__main__": param1 = "Test" test_func(param1=param1)
1 2 3 4 5 6 7
$ grep -nr "param1" ./test.py > ./test6.py:6: test_func(param1=param1) $ grep -nr "param1 =" ./test6.py > ./test6.py:5: param1 = "Test"
- 일관성
- 포맷을 지켜 코드의 통일성을 높인다.
- 코드 품질
- 코드 구조화하여 코드를 이해하기 쉽고 유지보수를 쉽게 하여 준다.
PEP8 내용
- 들여쓰기 : 공백은 4칸
- 한줄에 최대 79자 ( 최근에는 119자까지 )
- 최상위 함수와 클래스 정의는 2줄씩 띄어 사용
-
import는 항상 소스 코드 최상단이며 분리하여 작성
1 2
import streamlit import pandas as pd
-
함수, 변수, 속성 : lowercase_underscore
1 2 3 4 5 6
def func a = 1 class Quadrangle: def __init__(self): self.instance_value = 0
-
protected instance : _leading_underscore
1 2 3 4 5
class Quadrangle: def __init__(self, width, height, color): self._width = width self._height = height self._color = color
-
private instance : __double_leading_underscore
1 2 3 4 5
class Quadrangle: def __init__(self, width, height, color): self.__width = width self.__height = height self.__color = color
PEP8 문법 검사 도구
- flake8 라이브러리를 활용하여 검사 가능
1
2
$ pip install flake8
$ flake8 test.py