구글 스타일로 파이썬 코딩하기
- tips
- 2018. 11. 29.
이 페이지는 다음 페이지를 번역하여 작성하였습니다. 문장을 부드럽게 하기 위하여 약간의 의역이 포함되어 있습니다.
http://google.github.io/styleguide/pyguide.html
TL;DR
구글은 pylint를 사용할 것을 권장하며, 형식에 관한 논쟁을 피하기 위하여 yapf auto-formatter를 사용합니다.
구글 파이썬 스타일 가이드
1. 배경
파이썬은 구글에서 사용되는 주된 동적 언어입니다(Dynamic language; 다른 언어에서 컴파일 과정 중 수행하는 특정 일들을 런타임에 수행하는 고급 언어). 이 스타일 가이드는 파이썬 프로그래밍에서 해야할 것과 하지 말아야 할 것들의 목록을 적어 놓은 것입니다.
당신이 코드의 형식을 올바르게 맞추는 것을 돕기 위해서, 우리는 ‘setting file for Vim’을 만들었습니다. Emacs에 대해선, 기본 세팅으로 충분합니다.
많은 팀들이 형식에 관한 논쟁을 피하기 위해서 ‘yapf’ auto-formatter를 사용하고 있습니다.
2. 파이썬 언어 규칙
2.1 Lint
‘pylint’를 당신의 코드에 적용하세요.
2.1.1 정의
‘pylint’는 파이썬 소스코드에서 버그와 스타일문제를 찾는 도구입니다. ‘pylint’는 C나 C++같은 덜 동적인 언어들에서 컴파일러가 찾아주는 문제들을 찾습니다. 파이썬의 동적인 특성 때문에, 몇몇의 warning들(pylint가 주는)은 아마 부정확 할 것입니다. 그러나, 거짓된 warning이 너무 빈번하게 발생하는 것은 아닙니다.
2.1.2 찬성
‘typos, 할당되기전에 변수를 사용하는 것’ 등과 같은 놓치기 쉬운 오류를 찾습니다.
2.1.3 반대
‘pylint’가 완벽하지 않습니다. pylint의 장점을 활용하기 위해서 우리는 가끔 a) 주변에 쓰거나(write around it)? b) warning을 숨기거나 또는 c) pylint를 개선시켜야 합니다.
2.1.4 결정
당신의 코드에 ‘pylint’를 확실히 적용하세요.
만약 pylint가 적절하지 못한 경우라면 다른 이슈들은 숨겨지지 않도록, warning을 숨기세요(suppress). warning을 숨기기 위해, 당신은 line-level comment를 설정할 수 있습니다.
dict = ‘somthing awful’ # Bad Idea... pylint: diable=redfined-builtin
pylint warning은 각각 g-로 시작되는 구글-specific한 warning인 symbolic name(empty-doctring)에 의해 식별 될 수 있습니다.
만약 symbolic name으로부터 숨기는 이유가 명확하지 않으면, 설명을 추가하세요.
이런 방법으로 숨기는 것은 당신이 쉽게 숨기는 것을 검색할 수 있고 다시 방문 할 수 있습니다.
‘pylint’ 에서 warning목록은 다음과 같이 얻어올 수 있습니다.
pylint --list-msgs
특정한 메시지에 대해서 더 많은 정보를 얻고 싶다면, 다음과 같이 입력하세요.
pylint --help-msg=C6409
예전 형식인 pylint: disable-msg 보다는 pylint: disable을 사용하세요.
사용되지 않은 매개변수 warning은 함수의 시작부분에서 변수를 삭제 함으로써 숨길 수 있습니다. 반드시 왜 당신이 이 변수를 지우는지 주석을 달아서 설명하세요. “unused” 라고 표시하는 것으로 충분합니다. 예를들어
def viking_cafe_order(spam, beans, eggs=None): del beans, eggs # Unused by vikings. return spam + spam + spam
다른 warning을 숨기는 형태로는 ‘_’을 사용되지 않은 매개변수 식별자로 사용하는 것입니다. 매개변수 이름을 ‘unused_’라고 앞에 적어 놓는 방법도 있고 그것들에게 ‘_’를 할당 할 수도 있습니다. 이 형식들은 허용되기는 하지만 더 이상 권장되지 않습니다. 첫 번째 두 ‘break caller’들은 이름으로 매개변수를 넘기는 방식임에 반해 마지막 방법은 매개변수가 실제로 사용될 것을 강요하지 않습니다.
계속..
'tips' 카테고리의 다른 글
visual studio code로 파이썬 개발하는 방법 (0) | 2018.11.30 |
---|---|
스택오버플로의 2018 개발 트렌드 (0) | 2018.11.29 |
자료구조 & 알고리즘 추천 유튜브 강의 (0) | 2018.11.20 |
opensource contributor되기[1/3] (0) | 2018.11.20 |
GDG devFest수원 참석후기 (0) | 2018.11.14 |