Nerdy

파이썬 스타일 가이드 본문

Python/문법

파이썬 스타일 가이드

뚱인데요? 2022. 3. 22. 20:55
728x90

아래 두개의 문장이 있습니다.

 

'버거를 주문할 시에 혜택 차원에서 음료수 및 감자튀김을 받을 수 있다.'

vs

'버거를 주문하면 음료수와 감자튀김은 서비스다.'

 

두 문장은 같은 얘기를 하는건데 각자만의 어떤 스타일이 있습니다.

스타일이라는 건 주관적인 것이기 때문에 특정 스타일이 무조건적으로 더 좋다고 말하기는 어렵겠지만 확실히 아래 문장이 더 간결하고 의미를 더 깔끔하게 전달할 수 있을겁니다.

마찬가지로 글을 쓸때 처럼 코딩을 할 때도 스타일을 신경 써주면 이해하기 쉬운 코드가 되며 이는 좋은 스타일을 가진 좋은 코드라고 할 수 있을겁니다.

 

하지만 코드의 스타일은 내가 보기 좋다고 되는게 아닙니다.

만약 어떤 회사에서 개발자로 일하게 된다면 그 회사에서 따르기로 하는 스타일 가이드가 있을겁니다.

그 스타일 가이드에 맞게 코드를 작성해야 할겁니다.

파이썬은 가장 많이 사용되는 스타일 가이드인 PEP8이 있습니다. 굉장히 오랜 기간 많은 개발자들이 참여해서 만들어진 스타일 가이드입니다.

PEP8에 나와있는 규칙들을 잘 따르면 아마도 좋은 코드를 짤 거라 생각이 듭니다.

아래는 몇가지 규칙들을 가져왔습니다.

 

출처 : 코드잇

 

해당자료 원본링크 : PEP 8 – 파이썬 코드 | 대한 스타일 가이드 peps.python.org

 

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

PEP 8 – Style Guide for Python Code PEP 8 Title 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 Contents This document gives coding con

peps.python.org

 

1. 이름

1-1) 이름규칙

모든 변수와 함수 이름은 소문자, 여러 단어일 경우 _로 나누기

# bad
someVariableName = 1
SomeVariableName = 1

def someFunctionName():
    print("Hello")


# good
some_variable_name = 1

def some_function_name():
    print("Hello")

모든 상수 이름은 대문자, 여러 단어일 경우 _로 나누기

# bad
someConstant = 3.14
SomeConstant = 3.14
some_constant = 3.14


# good
SOME_CONSTANT = 3.14

1-2) 의미있는 이름

# bad (의미 없는 이름)
a = 2
b = 3.14
print(b * a * a)


# good (의미 있는 이름)
radius = 2
pi = 3.14
print(pi * radius * radius)
# bad (의미 없는 이름)
def do_something():
    print("Hello, world!")


# good (의미 있는 이름)
def say_hello():
    print("Hello, world!")

2. 화이트 스페이스

2-1) 들여쓰기

들여쓰기는 무조건 스페이스 4개를 사용

# bad (스페이스 2개)
def do_something():
  print("Hello, world!")


# bad (스페이스 8개)
i = 0
while i < 10:
        print(i)


# good (스페이스 4개)
def say_hello():
    print("Hello, world!")

2-2) 함수정의

함수 정의 위아래로 빈 줄이 두 개씩 있어야 한다. 하지만 파일의 첫 줄이 함수 정의인 경우 해당 함수 위에는 빈 줄이 없어도 된다.

# bad
def a():
    print('a')
def b():
    print('b')

def c():
    print('c')



# good
def a():
    print('a')


def b():
    print('b')


def c():
    print('c')

2-3) 괄호 안

괄호 바로 안에는 띄어쓰기는 하지 말아야 한다.

# bad
spam( ham[ 1 ], { eggs: 2 } )


# good
spam(ham[1], {eggs: 2})

2-4) 함수 괄호

함수를 정의하거나 호출할 때, 함수 이름과 괄호 사이에 띄어쓰기는 하지 말아야 한다.

# bad
def spam (x):
    print (x + 2)


spam (1)


# good
def spam(x):
    print(x + 2)


spam(1)

2-5) 쉼표

쉼표 앞에는 띄어쓰기를 하지 말아야 한다.

# bad
print(x , y)


# good
print(x, y)

2-6) 지정 연산자

지정 연산자 앞뒤로 띄어쓰기를 하니씩만 해주기

# bad
x=1
x    = 1


# good
x = 1

2-7)연산자

기본적으로는 연산자 앞뒤로 띄어쓰기를 하나씩 해주기

# bad
i=i+1
submitted +=1


# good
i = i + 1
submitted += 1

하지만 연산의 "우선순위"를 강조하기 위해서는, 연산자 앞뒤로 띄어쓰기를 붙이는 것을 권장

# bad
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)


# good
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

2-8) 코멘트

일반 코드와 같은 줄에 코멘트를 쓸 경우, 코멘트 앞에 띄어쓰기 최소 두 개 해주기

# bad
x = x + 1# 코멘트


# good
x = x + 1  # 코멘트
728x90

'Python > 문법' 카테고리의 다른 글

옵셔널 파라미터  (0) 2022.03.22
버림 나눗셈과 반올림  (0) 2022.03.21
While문 공부하기  (0) 2022.03.14