20210721 TIL
2021.07.21
python 언더스코어 의미
1. 인터프리터에서 사용되는 경우
인터프리터에서 출력된 값을 그대로 사용하고 싶을때
2. 값을 무시하고 싶은 경우
언패킹할때, 무시하고 싶은 경우(*_ 로 받으면 여러개)
3. 특별한 의미의 네이밍을 하는 경우
3.1. _single_leading_underscore
private한 식별자를 사용하길 원하는 경우
3.2. single_trailing_underscore_
파이썬 키워드(지시어, 예약어)와 충돌을 피할때
일종의 컨벤션이다
3.3. __double_leading_underscore (feat. mangling)
- 클래스에서 상속 받아올때, 일정한 규칙에 의해 변형되는 식별자를 사용하길 원하는 경우
약간 복잡하다. A라는 클래스에서 __method() 라는 메소드가 있고, A를 상속하는 B 클래스에서 __method() 라는 메소드를 정의하면 상속 받는 것 혹은 새로 정의하는 것이 아니라 _A__method와 _B__method가 생성이 된다. 호출 할때에는 __method로 호출할 수도 없다.
- 클래스에서 상속 받아올때, 해당 식별자가 오버라이딩 하지 않길 바라는 경우
위의 설명처럼 이름이 일정 규칙에 의해(_클래스이름__식별자명) 변경되므로 상속하기 어렵게 만들어 놓았다. 못하는 것은 아니지만 복잡하게 해놨기 때문에 억지로 굳이 그걸 뜯어서 오버라이딩 해서는 안된다.
3.4. double_leading_trailing_underscore
매직 메소드를 위해
4. 국제화(i18n)/지역화(l10n) 함수로 사용되는 경우
컨벤션이다. django의 공식 문서에 이 컨벤션을 소개하면서 사용하고 있다.
5. 숫자 리터럴값의 자릿수 구분을 위한 구분자로써 사용할 때
python 3.6에 추가된 문법.
사람 눈으로 보기에 자리수를 구별하기 위해서 넣어준다.
댓글을 작성해보세요.