Skip to content

MAM Python Style Guide

hon2y_b22 edited this page Sep 19, 2024 · 1 revision

1. 공용 Code Naming Rule

1.1. 변수, 클래스명 : 명사(None)

class: FeatureExtract (X)
class: FeatureExtractor (O)

var: work (X)
var: worker (O)

1.2. 변수, 클래스명 : 관사X, to(2)를 제외한 전치사 가능한 생략

var: a_cat (X)
var: cat (O)

var: the_number_of_worker (X)
var: num_workers (O)

class: Seq2seq
function: sentence_to_id()
var: char2id

1.3. iterators : 단수와 복수 구분

items = [1,2,3,4,5]

for item in items: # 아이템들 중에 아이템
    print(item)

1.4. 함수명 : 동사+명사

function: id() (X)
function: get_id() (O)

1.5. Boolean 타입 변수 : is_boolean

  • is_ 접두사(prefix)를 사용
is_human = True    # 사람인지 아닌지
is_animal = False  # 동물인지 아닌지
is_exist = True    # 존재하는지 안하는지
is_final_data = False  # 마지막 데이터인지 아닌지
...

2. Extension Used

  • Formatter : Black Formatter

3. Code Style Guide

3.1. 네이밍 가이드라인

타입 네이밍 Example
패키지 snake_case lower_with_under
모듈 snake_case lower_with_under
클래스 PascalCase CapWords
예외(Exception) PascalCase CapWords
함수 snake_case lower_with_under()
상수 UPPER_CASE CAPS_WITH_UNDER
변수 snake_case lower_with_under
메서드 snake_case lower_with_under()
함수/메서드 매개변수 snake_case lower_with_under

3.2. 피해야 하는 이름

  • 아래와 같은 특별한 경우를 제외한 단일 글자는 피한다.
    • counters이나 iterators에서 사용할 때 (예. ijkv 등)
    • try/except문에서 예외 식별자로 e를 사용할 때

3.3. 문자열 포매팅

  • 문자열 포매팅(format)을 할 때 f-string 포매팅을 사용한다.
  • 이유
    • %Operator, str.format, f-string 3가지의 포매팅 속도를 비교하였을 때 f-string 속도가 가장 빠르다.
    • 표현식을 직접 평가하여 문자열에 삽입하기 때문에 추가적인 파싱이나 변환 작업 없이 직접적인 문자열 생성이 가능하다.
  • f 접두사를 붙여 사용
name = 'jobAdream'
print(f"Project : {name}")
# 출력 : "Project : jobAdream"

3.4. 매개변수 및 반환값 타입 어노테이션

상세설명 참조 : https://yosseulsin-job.github.io/Google-Python-Style-Guide-kor/#s3.19

  • 추후 수정이 불필요한 확정적으로 사용되는 타입들은 필히 명시
  • 반환값이 None인 경우에는 → None 타입 명시 필수