구글의 파이썬 코딩 가이드 알아보기

오늘은 구글에서 제공하는 스타일 가이드 문서중에 파이썬에 대한 문서를 알아보고자 합니다.

lint

pylint를 사용하여 소스 코드의 버그와 스타일을 관리합니다.

import

패키지나 모듈에만 import를 사용합니다.

그리고 상대 이름을 쓰지말고 가급적이면 전체 패키지 이름을 적습니다.

또한 한 줄에 한 패키지만 가져와야 합니다.

예외 처리

Exception(예외)는 허용되지만 조심하게 사용합니다.

전역 변수

전역 변수를 피해야 합니다.

때로는 유용하지만, 모듈을 임포트할 때에 동작을 방해할 수도 있기 때문입니다.

중첩 클래스 및 함수

클래스는 메소드나 함수 그리고 클래스의 내부에서도 정의될 수 있습니다.

기본적인 반복자와 연산자

리스트나 딕셔너리, 파일에서 지원하는 기본 반복자와 연산자를 사용합니다.

람다 함수

람다는 익명 함수로서, 콜백이나 연산자 정의에 사용됩니다.

lambda x, y: x * y

편리하긴 하지만, 일반적인 함수보다 가독성과 디버깅이 떨어집니다.

조건식

if문에 대한 짧은 식을 제공해줍니다.

x = 1 if cond else 2

짧지만, 읽기 어렵고 조건을 찾기 어려울 수 있습니다.

기본 인자 값

함수의 매개 변수에서 기본적인 값을 지정해줄 수 있습니다.

def foo(a, b=0):

오버로드를 지원하지않는 파이썬에게는 기본 인자 값으로 오버로딩을 구현할 수 있습니다.

bool

가능한 false를 기본적으로 사용합니다.

모든 빈 값이 false로 간주되며, ==를 이용해 bool 값을 비교하지 않고, is not을 사용합니다.

문자열

가능한 string 모듈 대신 문자열 메소드를 사용합니다.

데코레이터

@ 표기법이라고 불리는 데코레이터로 함수에게 기능을 부여할 수 있습니다.

라인

세미콜론으로 마지막 줄을 끝내지 않습니다.

그리고 한 라인당 최대 길이는 80자를 넘기지 않습니다.

괄호

괄호를 return문과 조건문에 넣을 필요는 없습니다.

들여쓰기

코드는 4칸을 들여씁니다.

탭를 사용하거나, 탭과 스패이스를 혼용해서도 안됩니다.

빈 줄

최상위 정의에는 두 줄, 함수 정의에는 한 줄을 띄어 씁니다.

공백

괄호와 대괄호, 중괄호에는 공백을 넣지 않습니다.

그리고 쉼표와 세미콜론 앞에도 공백이 없어야 하며, 뒤에는 있어야 합니다.

주석

모듈과 함수 그리고 메소드에는 서로에게 맞는 올바른 스타일로 주석을 달아야 합니다.

파일과 소켓

파일과 소켓은 작업을 완료하면 반드시 닫아주어야 합니다.

TODO

곧 고칠 완벽하지 않은 코드에 사용합니다.

# TODO(Zeke) Change this to use relations.

메인

메인 함수를 만들어서 모듈로 쓰일 때 디버그 코드가 실행되지 않도록 합니다.

def main() :
        ...

if __name__ == '__main__':
    main()

참고 문서

https://google.github.io/styleguide/pyguide.html

Written on April 18, 2018