Pythonic한 코드 작성하기 - 파이썬 코드스타일 가이드 pep8

Pythonic한 코드 작성하기

가독성은 파이썬의 큰 장점 중 하나입니다. 이유는 완벽한 코드 스타일 가이드라인과 “파이썬스러운(Pythonic)”한 이디엄(코드 작성법) 때문입니다.

파이썬에는 pep8이라는 코드 스타일 가이드가 있습니다. 대부분의 개발자가 이 코드 스타일을 따라서 개발을 하고있죠.

개발자들이 따르는 스타일이 있다는 것은 많은 도움이 됩니다. 그럼 하나하나 살펴볼까요?

참고 자료

Whitespace

  1. 한 줄의 코드 길이가 79자 이하여야 합니다.
1
y = a + a + a + a
  1. 함수와 클래스는 다른 코드와 빈 줄 두개로 구분합니다.
1
2
3
4
5
6
7
8
9
10
11
12
class a():
    pass
# 빈줄
# 빈줄
class b():
    pass
# 빈줄
# 빈줄
def c():
    pass
# 빈줄
# 빈줄
  1. 클래스에서 함수는 빈 줄 하나로 구분합니다.
1
2
3
4
5
6
7
class a():

    def b():
        pass

    def c():
        pass

주석

  • 코드의 내용과 일치하지 않는 주석은 피합니다.
  • 불필요한 주석은 피합니다.

이름 규칙

  1. 변수명 앞에 _(밑줄)이 붙으면 함수 등의 내부에서만 사용되는 변수를 일컫습니다.
1
_my_list = []
  1. 변수명 뒤에 _(밑줄)이 붙으면 라이브러리 혹은 파이썬 기본 키워드와의 충돌을 피하고 싶을 때 사용합니다.
1
import_ = "not_import"
  1. 소문자 l, 대문자 O, 대문자 I를 가능하면 사용하지 않습니다.

  2. 모듈(Module)명은 짧은 소문자로 구성되며, 필요하다면 밑줄로 나눕니다.

1
my_module.py
  1. 클래스명은 파스칼 케이스(Pascal Case) 컨벤션으로 작성합니다. 네이밍 컨벤션은 뒤를 참고하세요!
1
2
class MyClass():
    pass
  1. 험수명은 소문자로 구성하되 필요하면 밑줄로 나눕니다.
1
2
def my_function():
    pass
  1. 상수(Constant)는 모듈 단위에서만 정의하며, 모두 대문자로 표현합니다. 필요하다면 밑줄로 나눕니다.
1
MY_PI = 3.14

네이밍 컨벤션 (Naming Convention)

사람들마다 변수명을 적는 방식이 다르면 코드가 깔끔해보이지 않아 가독성이 좋지 않습니다. 통일성을 갖기 위해서는 사람들이 공유하는 코딩 스타일 가이드를 가지고 있는 것이 좋습니다.

그래서 pep8 코딩스타일 가이드에서는 이름을 작성할 때 사용하는 네이밍 컨벤션이 있습니다.

대표적인 네이밍 컨벤션은 snake_case, PascalCase, camelCase입니다.

  • snake_case
    • 모든 공백을 “_“로 바꾸고 모든 단어는 소문자입니다.
    • 파이썬에서는 함수, 변수 등을 명명할 때 사용합니다.
    • ex) this_is_snake_case
  • PascalCase
    • 모든 단어가 대문자로 시작합니다.
    • UpperCamelCase, CapWords라고도 불립니다.
    • 파이썬에서는 클래스를 명명할 때 사용합니다.
    • ex) ThisIsPascalCase
  • camelCase
    • 처음은 소문자로 시작하고 이후 모든 단어의 첫 글자는 대문자로 합니다.
    • 파이썬에서는 거의 사용하지 않습니다. (java 등에서 사용)
    • ex) thisCamelCase