Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

Python PEP8

Python PEP8

안녕하세요
오늘은 Python 기본 코드 가이드라인으로 유명한 PEP8에 대해서 알고 있는 바를 공유 드리려고 합니다.


PEP8

  • Style Guide for Python Code
  • Python 코드를 어떻게 구상해야하는지 가이드라인
목적

  1. 검색 효율성( 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"
    
  2. 일관성
    • 포맷을 지켜 코드의 통일성을 높인다.
  3. 코드 품질
    • 코드 구조화하여 코드를 이해하기 쉽고 유지보수를 쉽게 하여 준다.


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