20210721 TIL

python 언더스코어 의미

1. 인터프리터에서 사용되는 경우

인터프리터에서 출력된 값을 그대로 사용하고 싶을때

2. 값을 무시하고 싶은 경우

언패킹할때, 무시하고 싶은 경우(*_ 로 받으면 여러개)

3. 특별한 의미의 네이밍을 하는 경우

3.1. _single_leading_underscore

private한 식별자를 사용하길 원하는 경우

3.2. single_trailing_underscore_

파이썬 키워드(지시어, 예약어)와 충돌을 피할때

일종의 컨벤션이다

3.3. __double_leading_underscore (feat. mangling)

  1. 클래스에서 상속 받아올때, 일정한 규칙에 의해 변형되는 식별자를 사용하길 원하는 경우

약간 복잡하다. A라는 클래스에서 __method() 라는 메소드가 있고, A를 상속하는 B 클래스에서 __method() 라는 메소드를 정의하면 상속 받는 것 혹은 새로 정의하는 것이 아니라 _A__method와 _B__method가 생성이 된다. 호출 할때에는 __method로 호출할 수도 없다.

  1. 클래스에서 상속 받아올때, 해당 식별자가 오버라이딩 하지 않길 바라는 경우

위의 설명처럼 이름이 일정 규칙에 의해(_클래스이름__식별자명) 변경되므로 상속하기 어렵게 만들어 놓았다. 못하는 것은 아니지만 복잡하게 해놨기 때문에 억지로 굳이 그걸 뜯어서 오버라이딩 해서는 안된다.

3.4. double_leading_trailing_underscore

매직 메소드를 위해

4. 국제화(i18n)/지역화(l10n) 함수로 사용되는 경우

컨벤션이다. django의 공식 문서에 이 컨벤션을 소개하면서 사용하고 있다.

5. 숫자 리터럴값의 자릿수 구분을 위한 구분자로써 사용할 때

python 3.6에 추가된 문법.

사람 눈으로 보기에 자리수를 구별하기 위해서 넣어준다.

댓글을 작성해보세요.

채널톡 아이콘