[Python] 특별한 의미의 네이밍을 할 때 _(언더바), __(더블 언더바) 차이점

네이밍에서 _는 private의 역할을 하는 컨벤션이다. 물론 변수를 a=10, _a=10 이렇게 한다고 _a가 콘솔에서 출력이 안 되는 것은 아니다. 이건 어디까지나 private를 표현하는데 쓰는 약속이기 때문이다.
 __는 컨벤션이 아닌 하나의 문법적인 요소이다. __는 클래스 속성명을 맹글링하여 클래스간 속성명의 충돌을 방지하기 위한 용도로 사용된다. 파이썬의 맹글링 규칙은 __로 지정된 속성명 앞에 _ClassName을 결합하는 방식이다. 즉, ClassName이라는 클래스에서 method라는 메서드를 선언했다면 이는 _ClassNamemethod로 맹글링 된다.


ref.
mingrammer's note / 파이썬 언더스코어(_)에 대하여
- https://mingrammer.com/underscore-in-python/
큐울 / 파이썬! 지켜야할 기초 코딩 룰, 컨벤션
- http://nophotoplease.tistory.com/95

+ Recent posts