스타일 가이드란?

각 프로그래밍 언어마다 고유의 문법을 가지고있다. 이러한 문법을 지키지않으면 코드는 제대로 동작하지않는다.
또한 코드의 가독성을 위해 정해진 규칙인 스타일 가이드도 존재한다. 이러한 규칙을 어긴다고 코드의 제기능을 상실하는것은 아니지만, 코드의 수정, 협업, 배포 등을 용이하게하기 위해 알아보기 쉬운 코드를 작성하는 것은 중요하다. PEP-8은 파이썬의 공식 스타일 가이드를 뜻한다.
위의 공식문서에서는 스타일 가이드를 지켜야하는 이유를 한문장으로 설명한다.

Code is read much more often than it is written.

주요 내용

여기서는 내가 코드를 작성하며 잘 지키지못한 것들을 위주로 기재한다.

Comma

## 쉼표 뒤의 whitespace
a = [1, 2, 3]

## Trailing comma는 세로로
# Correct:
a = [
				[1, 2, 3],
				[4, 5, 6],
				]  
				
# Wrong:
a = [[1, 2, 3], [4, 5, 6],]  

White space

## 수식의 양쪽은 whitespace
# Correct:
i = i + 1

# Wrong:
i=i+1

## 수식이 많다면 우선순위가 가장 낮은 것만 양쪽에 whitespace (권장)
# Correct:
z = x*2 + y**2

# Wrong:
z = x * 2 + y ** 2

## 괄호안에서 keyword argument를 나타낼때는 = 양쪽에 whitespace 사용 X
# 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)

## Argument annotaion 사용시에는 = 양쪽에 whitespace
# Correct:
def munge(sep: AnyStr = None): ...
def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...

# Wrong:
def munge(input: AnyStr=None): ...
def munge(input: AnyStr, limit = 1000): ...

Comments

  • Comments that contradict the code are worse than no comments. Always make a priority of keeping the comments up-to-date when the code changes!
  • Comments should be complete sentences
  • Python coders from non-English speaking countries: please write your comments in English, unless you are 120% sure that the code will never be read by people who don’t speak your language.
  • Write docstrings for all public modules, functions, classes, and methods.

Others

## String methods are always much faster and share the same API with unicode strings.
# Correct:
if foo.startswith('bar'):

# Wrong:
if foo[:3] == 'bar':

# Correct:
if isinstance(obj, int):

# Wrong:
if type(obj) is type(1):

## Don't compare boolean values to True or False using ==.
# Correct:
a = True
if a:
		~

# Wrong:
if a == True:
		~