코드 규약은 PEP8과 Google의 스타일 가이드를 최대한 따른다. 위 가이드에서 중요한 부분이나 언급되지 않은 부분 그리고 서로 상충되는 부분은 따로 아래에 기술한다.
반복문과 분기를 한 라인이 같이 담는 식의 코드를 작성하지 않는다.
# Bad
content_ids = [content.id for content in contents if content is not None]
# Alternative
content_ids = [content.id for content in filter(None, contents)]
# or
content_ids = map(lambda content: content.id, filter(None, contents))
함수 인자 (아래 둘다 된다)
foo = long_function_name(
var_one, var_two,
var_three, var_four
)
print(var_one)
foo = long_function_name(
var_one, var_two, var_three, var_four
)
print(var_one)
None과 비교, Boolean 비교는 is, is not 을 사용한다.
- Boolean 비교: if not is_ok:
- 객체의 타입을 비교할 때는 isinstance()를 사용한다.startswith()와 endswith()를 사용한다.module_namepackage_nameClassNamemethod_nameExceptionNamefunction_nameGLOBAL_CONSTANT_NAMEglobal_var_nameinstance_var_namefunction_parameter_namelocal_var_namePylint 설치
pip3 install pylint
Pylint 설치 위치 확인
which pylint
ridi 계정을 등록한 패키지의 Owner로 추가한다.name필드)은 ridi-로 시작하고 여러 단어로 이름지어진 경우 -(하이픈)으로 구분한다.
ridi-cms-sdk-를 사용하지 않는다.ridi를 사용한다.
# PyPI: ridi-cms-sdk
# Directory tree: ridi/cms
from ridi.cms import CmsClient
ridi를 사용하지 않는다.
- 사내 Library의 최상위 패키지 이름이 ridi이므로 import 트랩가 발생할 수 있다.