파이썬 Naming Convention
파이썬에서의 이름짓기 규칙은 조금 지저분합니다. 따라서, 우리는 이름짓기를 완벽하게 일반화하여 일관성있게 할수가 없습니다.
그렇지만, PEP8 에서는 현재 권장되는 이름짓기 규칙과 naming standard 를 제시합니다
새로운 모듈과 패키지들은
PEP8에 나와있는 naming convention 대로 이름이 지어져야 합니다.
하지만
존재하고 있는 라이브러리들은 이미 다른 스타일들을 가지고 있기 때문에,
내부적으로 일관성을 정하여 이름을 사용합니다.
Overriding Principle
퍼블릭 API 에서 사용자에게 보이는 이름들은 실행과 이행에 따라 지어진 이름보다. 사용처에 따라서 이름을 지어줍니다.
Descriptive: Naming Styles
우리가 코드로 이름을 써줄때, 굉장히 많은 스타일들이 존재합니다.
함수, 변수, 클래스, 매써드들의 이름을 적을때 쓰이는 스타일들은 여러가지가 존재합니다
아래 테이블로 정리 해봤습니다
Naming Style | 비고 |
---|---|
b (single lowercase letter) | 소문자 1글자 |
B (single Uppercase letter) | 대문자 1글자 |
lowercase | 소문자로만 이루어진 이름 |
lower_case_with_underscore | 소문자와 언더스코어가 조합된 이름 |
UPPERCASE | 대문자로만 이루어진 이름 |
UPPER_CASE_WITH_UNDERSCORES | 대문자와 언더스코어로 조합된 이름 |
CapitalizedWords | 단어의 첫글자들을 대문자로 표시하는 이름 (Carmel Case) |
mixedCase | 첫번째단어는 소문자로, 뒤에 오는 단어들은 대문자로 표시 |
Captialized_Words_With_Underscores | 단어의 첫글자들만 대문자로 표시하고 언더스코어로 이어지는 이름 (못생김!) |
추가로, 파이썬에는 많이 존재 하진 않지만 짧고 고유한 prefix 를 소속 그룹과 관련하여 이름에 붙이는 방식도 있습니다.
1 | os.start() |
X11 라이브러리는 모든 퍼블릭 함수 앞에 X
를 붙입니다. 파이썬에서는 보통 이런 스타일을 불필요하게 생각합니다.
왜냐하면, 모든 속성과 메써드들의 이름들은 객체와 함께 접두사가 붙고,
함수 이름은 모듈 이름으로 접두사가 붙기 때문입니다.
언더스코어를 사용하는 특수한 형태
Speical form | 사용목적 | 예시 |
---|---|---|
_single_leading_underscore |
내부적으로 사용 | import * 을 실행시, _ 로 시작하는 객체는 가져오지 않습니다. |
single_trailing_underscore_ |
파이썬 키워드와 겹치지 않기 위해 사용 | Tkinter.Toplevel(master,class_<br />='ClassName') |
__double_leading_underscore |
클래스 속성과 네임 멩글링 | 아래 class Car 예시 참조 |
__double_leading_and_trailing__ |
매직 메서드 혹은 속성 | __init__ , __import__ , __file__ |
자세한 설명은 아래 코드를 참조
1 | # _ 하나가 맨앞에 붙는 경우 |
마치며..
아직까지는 이름 지을일이 많이 없고, 특수 케이스가 별로 없어서.
우선 이런게 있다는것을 잘 알고 넘어가면 되겠습니다.