본문 바로가기
Language/Python

클래스 변수 선언 시 _와 __의 차이

by Wikinist 2023. 7. 19.

파이썬에서 클래스 변수를 선언할 때 _ 한 개와 _ 두 개의 차이가 있습니다.

_ 한 개 (단일 언더스코어):

_variable과 같이 변수 이름 앞에 언더스코어 한 개를 붙여 선언합니다.
이는 변수를 "내부 변수" 또는 "보호 변수"로 표시하는 관례적인 표기 방법입니다.
클래스 내부에서는 사용되지만, 클래스 외부에서 접근할 때에는 해당 변수에 직접 접근하지 않는 것이 바람직합니다.
다른 개발자에게 해당 변수가 내부적으로 사용되는 것임을 알리고, 변수에 대한 직접 접근을 억제하는 역할을 합니다.
하지만 파이썬에서는 실제로 해당 변수에 대한 접근 제한이나 강제를 적용하지 않으므로, 관례적인 규칙으로써 사용됩니다.

_ 두 개 (이중 언더스코어):

__variable과 같이 변수 이름 앞에 언더스코어 두 개를 붙여 선언합니다.
이는 "이중 언더스코어(name mangling)"라고 불리는 파이썬의 이름 변환 기능을 활용하는 특수한 변수 형태입니다.
이중 언더스코어로 시작하는 변수는 파이썬 인터프리터에 의해 _클래스명__variable과 같은 형태로 이름이 변경됩니다.
이는 서브클래스에서 동일한 이름의 변수를 사용할 때 이름 충돌을 방지하기 위한 목적으로 사용됩니다.
이중 언더스코어로 시작하는 변수는 클래스 외부에서도 동일한 이름으로 접근할 수 있지만, 이름 변환이 적용되므로 주의해야 합니다.

'Language > Python' 카테고리의 다른 글

파이썬 로그 설정  (0) 2023.07.20
객체 생성 시, 패러미터 검사  (0) 2023.07.20
DTO  (0) 2023.07.19
[2023-07-06] 파이썬 강의 내용 정리  (0) 2023.07.06
Code formatter, Black  (0) 2023.07.04