공부/Python

python에서 _, __의 의미

빛나는나무 2024. 1. 6. 21:15

_ (언더스코어)와 __ (두 개의 언더스코어 혹은 더블 언더스코어)는 Python에서 특별한 의미를 가지는 네이밍 규칙입니다.

 

_ (언더스코어):

단일 언더스코어는 흔히 사용되는 변수명으로언패킹이나 반복문에서 사용되지 않는 값을 무시할  주로 활용됩니다.
다른 개발자에게 해당 값이 사용되지 않을 것임을 알리는 표시로 사용될  있습니다.

for _ in range(5):
    # 언더스코어는 반복 중에 사용되지 않는 값을 무시합니다.
    print("Hello")

 

__ (두 개의 언더스코어):

두 개의 언더스코어는 "맹글링" (mangling)이라고 알려진 이름 충돌을 피하기 위해 클래스 내에서 사용됩니다.

클래스의 속성이름이 __ 시작하면, 파이썬은 _classname__attribute 같은 이름으로 속성을 변경합니다. 이를 통해 하위 클래스나 외부에서 이름 충돌을 방지할 있습니다.

class MyClass:
    def __init__(self):
        self.__my_private_attribute = 42

obj = MyClass()
# 실제로는 _MyClass__my_private_attribute로 저장됨
print(obj.__my_private_attribute)  # 에러 발생

 

개의 언더스코어는 이름 충돌을 피하기 위한 메커니즘으로 사용되지만, 일반적으로 파이썬에서는 "명시적인 것이 암시적인 것보다 좋다" 철학에 따라 직접적으로 속성에 접근하는 것을 권장합니다. 이름 충돌을 방지하는 데에는 단일 언더스코어를 사용하는 경우가 흔합니다.