Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 밑줄(_) 완벽 가이드: 언더스코어의 5가지 핵심 용도

파이썬에서는 상황에 따라 단일 밑줄(_)과 이중 밑줄(__)을 사용합니다. 밑줄은 단순한 문자가 아니라 파이썬에서 다양한 의미와 역할을 수행하는 중요한 요소입니다.

파이썬에서 밑줄이 사용되는 대표적인 경우는 다음과 같습니다.

  • 인터프리터에서 마지막 표현식의 값을 저장할 때
  • 특정 값을 무시하고 싶을 때
  • 변수나 함수를 선언할 때
  • 숫자 리터럴의 자릿수를 구분할 때
  • 국제화(i18n) 또는 현지화(l10n) 함수로 사용할 때

이제 각 경우에 대해 예시와 함께 자세히 살펴보겠습니다.

1. 인터프리터에서 마지막 표현식 값 저장

파이썬 인터프리터는 마지막에 실행된 표현식의 값을 자동으로 _에 저장합니다. 이를 활용하면 이전 계산 결과를 손쉽게 재사용할 수 있습니다.

>>> 20
20
>>> _
20
>>> _ + 3
23

2. 특정 값 무시하기

튜플 언패킹(unpacking) 시 필요 없는 값을 버리고 싶을 때도 밑줄을 사용합니다.

x, _, y = (1, 2, 3)

위 코드에서 x = 1, y = 3이 할당되고, 값 2는 무시됩니다.

3. 변수 및 함수 선언 시 사용

파이썬은 private 접근 제어자를 지원하지 않기 때문에 외부 접근을 문법적으로 강제 차단할 수 없습니다. 대신 네이밍 컨벤션(naming convention)으로 개발자 간의 의도를 표현합니다.

단일 후행 밑줄 (single_trailing_underscore_)

single_trailing_underscore_

이 규칙을 사용하면 파이썬 키워드나 내장 함수(built-ins)와의 이름 충돌을 쉽게 피할 수 있습니다. 예를 들어 class_, list_처럼 예약어 뒤에 밑줄을 붙이는 방식입니다.

이중 선행 밑줄 (__double_leading_underscore)

__double_leading_underscore

이것은 네임 맹글링(name mangling)이라고 부르며, 클래스 내부에서 속성 이름 간의 충돌을 방지하는 데 사용됩니다.

예를 들어 클래스 안에 __display라는 메서드를 작성하면, 실제 이름은 _ClassName__display 형태로 자동 변경됩니다.

이중 선행·후행 밑줄 (__double_leading_and_trailing_underscore__)

__double_leading_and_trailing_underscore__

이 규칙은 파이썬이 특별한 목적으로 사용하는 매직 메서드(던더 메서드)에 주로 쓰입니다. 대표적인 예로 __init__, __str__ 등이 있으며, 직접 만들어 사용하는 것보다 파이썬이 정의한 형태를 그대로 따르는 것이 좋습니다.

4. 숫자 리터럴의 자릿수 구분

큰 숫자의 가독성을 높이기 위해 자릿수 사이에 밑줄을 넣을 수 있습니다. 밑줄은 값에 아무런 영향을 주지 않습니다.

dec_base = 1_000_000
print(dec_base)  # 1000000

5. 국제화(i18n)/현지화(l10n) 함수

밑줄은 관례적으로 국제화(i18n) 또는 현지화(l10n) 함수의 별칭으로 사용됩니다. 이는 문법적 기능이 아니라 단순한 컨벤션이며, 그 유래는 C 언어의 전통에서 비롯되었습니다. gettext 같은 번역 라이브러리에서 _를 번역 함수로 바인딩해 사용하는 것이 대표적인 예입니다.