슈코딩

[Python] PEP8 스타일 본문

코딩공부/Python

[Python] PEP8 스타일

Roshu 2022. 6. 29. 21:16

 

https://peps.python.org/pep-0008/

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python co

peps.python.org

 

PEP8 은 파이썬에서 사용하는 코드 컨벤션이다. 코드를 어떻게 구상할 지 알려주는 스타일 가이드이다.

그럼 PEP8은 왜 필요할까? 바로 협업때문이다. 내가 짠 코드를 다른사람들과 원활하게 협업하려면 스타일이 공통되어 있어야 가독성도 좋아지고 수정하는 것도 쉬워진다. 사실 혼자서 작업을 해도 기본적인 코드 컨벤션을 지키지 않고 코드를 

짜면 나중에 다시봤을때 내가봐도 헷갈리고 가독성이 심각하게 떨어진다. PEP8의 공식문서랑 한글로 정리되어있는 블로그를 보니 사실 그동안 지키지 못했던것도 몇가지 있는것같다. 바로 whitespace관련인데, 아래 같은 항목이 있다.

 

Whitespace

  • 한 줄의 문자 길이가 79자 이하여야 한다.
  • 함수와 클래스는 빈 줄 두개로 구분한다.
  • 클래스에서 메서드는 빈 줄 하나로 구분한다.
  • 변수 할당 앞 뒤에 스페이스를 하나만 사용한다.
  • 리스트 인덱스, 함수 호출, 키워드 인수 할당에는 스페이스를 사용하지 않는다.

함수와 클래스는 빈줄 두개로 구분하는 등 이런 디테일한 부분까지 명시되어있다. 

# Correct:
try:
    value = collection[key]
except KeyError:
    return key_not_found(key)
else:
    return handle_value(value)
    
# Wrong:
try:
    # Too broad!
    return handle_value(collection[key])
except KeyError:
    # Will also catch KeyError raised by handle_value()
    return key_not_found(key)

try, except문을 프로젝트나 과제하면서 많이 사용했는데, 본의아니게 2번째 처럼 사용한 적이 있는것같기도한 느낌이 든다. ( 아닐수도 있다 ) 하지만 try하고 바로 return을 하게되면 try에서 이루어진 return에서 에러를 잡기 때문에 위에 처럼 쓰라고 권장되어있다.

 

# Correct:
def complex(real, imag=0.0):
    return magic(r=real, i=imag)
    
# Wrong:
def complex(real, imag = 0.0):
    return magic(r = real, i = imag)

위는 함수안의 인수를 할당할때 스페이스를 쓰지않는 내용인것같다. 딱봐도 어색해 보이긴 한다.

 

이외에도 naming관련 표현식과 문장 관련도 있고, 영어라서 사실 정확히 이해되지 않는 처음보는 형태도 있었다.

개발자는 협업이 중요시되는 만큼 이런 기본적인 컨벤션을 잘 지켜서 협업을 잘하는 개발자가 되도록 노력해야겠다. 

다행히 그래도 어느정도는 지키면서 코드를 쓴것같지만 그렇지 못한 부분도 확실히 고쳐서 완벽할 순 없겠지만, 

끊임없는 피드백, 자가진단을 통해서 가독성이 좋은 코드를 짤 수 있도록 발전하자. (이름짓기는.. 너무 어렵다!ㅠ)

 

 

'코딩공부 > Python' 카테고리의 다른 글

[Python] 문법 복습 심화 학습  (2) 2022.04.25
Python & DB & Web Scraping  (1) 2022.04.19
[Python] 계산기 만들기  (0) 2022.04.17
Comments