코드 규약은 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_name
package_name
ClassName
method_name
ExceptionName
function_name
GLOBAL_CONSTANT_NAME
global_var_name
instance_var_name
function_parameter_name
local_var_name
Pylint 설치
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 트랩가 발생할 수 있다.