PEP 8 요약

참고 :

  • https://datacook.tistory.com/12
  • https://www.python.org/dev/peps/pep-0008/


1. White Space

글자 수

  • 들여쓰기 : 4글자
  • 한 줄 : 80자 미만
  • =, +, - ,* 등 앞 뒤에 1자씩 띄어쓰기


줄 수

  • with 백슬래시(backslash) : 연속 되는 문장의 줄 바꿈
  • 함수 & 클래스 : 2줄
  • (클래스 내에서) 메서드 : 1줄

  • 같은 줄에 여러 문장 (with ;)는 지양하기


연산자가 Enter후에 나오도록

# GOOD
A = (a
    +b
    +c)

# BAD
A = (a+
    b+
    c)


2. Naming

  • 함수, 변수, 속성 : LOWER
  • 상수 : UPPER
  • Class : 앞글자 UPPER
    • protected 인스턴스 : 언더바(_) x 1
    • private 인스턴스 : 언더바(_) x 2
  • File Path는 대문자로 맨 위에 표기
FILE_PATH = N://DATA//JBAM/INPUT/
INPUT_FILE = INPUT_FILE.csv
 
data = pd.read_csv(FILE_PATH + INPUT_FILE)


  • ‘O’,l’ 등은 지양하기 ( 0,1이랑 구분 어려움)
    • 차라리 ‘L’이라고 하기


3. 주석

좋은 예시

  • 완전한 문장 형태여야
  • 첫 글자는 대문자
# 짧은 주석

"""
긴 주석
"""


4. 콤마

  • 마지막에 오는 콤마는 사용자 마음대로

    ( but 1개의 요소만을 담은 tuple은 의무 )

FILES = ('setup.cfg',)


5. Import

  • 가장 맨 위에 import 문
  • 항상 모듈의 절대 이름을 사용
    • import foo (X)
    • from bar import foo (O)
  • 상대적인 임포트를 해야 한다면…
    • from . import foo
  • 모듈은 짧은 소문자 이름을 가져야
  • import하는 순서 :
    • 1) 표준 library
    • 2) 3rd party
    • 3) 직접 만든 모듈


좋은 예시

import os
import sys

from subprocess import Popen, PIPE

from Test_class import Test_def


나쁜 예시

from subprocess import Popen, PIPE

from Test_class import Test_def

import sys, os


6. 상수 ( constant )

  • 언더스코어로 구분되어 대문자로 작성
    • ex) COUNT, TOTAL, MAX_ITER


7. 함수 선언

  • def문 사용하기

    ( lambda 지양하기 )


8. 예외 (Error)

  • except:를 사용하는 것 보단 특정한 예외를 언급
try :
    import no_such_module
except Import Error :
    no_such_module = None


  • try 구문의 절대적인 수를 최소한으로!
try:
    value = collection[key]

except KeyError:
    return key_not_found(key)

else:
    return handle_value(value)