본문 바로가기
Data Engineering/파이썬

파이썬 코딩 컨벤션 - 네이밍 컨벤션

by 무언가 하는 소소 2022. 9. 22.
728x90
반응형

 

 

오늘은 깔끔한 파이썬 코드 작성을 위한 코딩 컨벤션 중 네이밍 컨벤션에 대해 알아보자.

 

1. PEP 8

첫 번째로 파이썬 코딩 컨벤션 공식(?) 문서인 PEP8의 네이밍 컨벤션은 다음과 같다. 

 

1) 모든 글자는 ASCII여야 한다.

 

2) Module 이름은 모두 소문자여야 하고 짧은 이름이 좋다.

 

3) Class 이름은 PascalCase를 따른다.

-  PascalCase: 새로운 단어 첫글자는 대문자, 나머지는 소문자

 

4) 상수는 대문자여야 한다.

 

5) 함수, 메소드, 변수 이름은 소문자여야 한다.

 

6) 메소드의 첫 번째 아규먼트는 self (소문자)여야 한다.

 

7) 클래스 메소드의 첫 번째 아규먼트는 cls (소문자)여야 한다.

 

8) 클래스에서 private attribute은 언더스코어(_)로 시작해야 한다.

 

9) 클래스에서 public attribute은 언더스코어로 시작하면 안된다. 

 

 

아래 사이트에 가면 원문을 볼 수 있다. 

https://www.python.org/dev/peps/pep-0008/#naming-conventions

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python co

peps.python.org

 

 

2. 네이밍 컨벤션

PEP8에 추가적으로 깔끔한 코드를 쓰기 위한 네이밍 컨벤션을 소개한다. 

 

1) 변수명은 너무 짧으면 안된다.

- 한 글자나 두 글자는 피하는 것이 좋음 (for문에 i, j, k나 x, y 좌표는 제외)

- 과한 줄임말은 금지 (ex: com => computation, computer, communication {o})

- 한 단어로 된 모호한 변수명 금지 (ex: start, 어떤 start인지 모호 => start_computation)

 

2) 변수명은 필요한 만큼만 길어야 한다. 

- 변수명은 변수에 대한 설명을 해야하지만 너무 장황하거나 당연한 설명을 할 필요는 없음

- 불필요한 prefix 금지 (ex: Person 클래스에서 키를 담기 위한 변수는 person_height가 아닌 height로도 충분)

- is, has는 가독성에 도움이 되는 prefix임 (ex: key => is_key)

- 이름에 단위를 포함하는 것도 도움이 됨 (ex: height_cm)

- 숫자 prefix는 지양 (ex: num1, num2 => num_person, num_class)

 

3) 나중에 검색하기 쉽도록 변수명을 정해야 한다.

- ex: num => num_apple

 

4) 변수명은 누구나 이해할 수 있는 것이 좋다. 

- 농담 등의 특정 배경지식을 필요로 하는 이름은 지양

 

5) 파이썬에서 이미 쓰고 있는 이름은 피해야 한다.

- 파이썬에서 실수로 오버라이트 하기 좋은 빌트인 변수들

 # all, any, date, email, file, format, hash, id, input, list, min, max, object, open, random, set, str, sum, test, type

 

 

혼자서 코딩하거나 코테 연습을 할 때는 변수 이름을 막 지어버리는 경우가 있다. 나중에 필요할 때 이름 잘 정하면 되지, 라고 생각하지만 한번 습관 들면 잘 안고쳐진다. 번거롭더라도 네이밍 컨벤션을 지키자.

 

모두 즐거운 코딩!

728x90
반응형

댓글