logo

Python의 밑줄(_)

이번 글에서는 Python의 밑줄(_)을 살펴보겠습니다.

다음은 다양한 장소입니다. _ Python에서는 다음과 같이 사용됩니다.

  • 단일 밑줄:
    • 통역사의 단일 밑줄
    • 이름 뒤의 단일 밑줄
    • 이름 앞의 단일 밑줄
    • 숫자 리터럴의 단일 밑줄
  • 이중 밑줄:
    • 이름 앞에 이중 밑줄
    • 이름 앞뒤에 이중 밑줄

단일 밑줄

예 1: 인터프리터의 단일 밑줄:

_ Python 프롬프트/인터프리터에서 마지막으로 실행된 표현식 값을 반환합니다.



예 2: 값 무시를 위한 단일 밑줄

여러 번 우리는 해당 값을 Underscore에 할당하기 위해 반환 값을 원하지 않습니다. 버리는 변수로 사용됩니다.

파이썬3




# Ignore a value of specific location/index> for> _>in> range>(>10>)> >print> (>'Test'>)> # Ignore a value when unpacking> a,b,_,_>=> my_method(var1)>

>

>

예 3: 이름 뒤의 단일 밑줄

Python에는 기본적으로 변수 이름으로 사용할 수 없는 키워드가 있습니다. python 키워드와 변수 사이의 충돌을 피하기 위해 이름 뒤에 밑줄을 사용합니다.

파이썬3




class> MyClass():> >def> __init__(>self>):> >print>(>'OWK'>)> def> my_definition(var1>=>1>,>class_>=>MyClass):> >print>(var1)> >print>(>class_>)> my_definition()>

>

>

산출:

1>

예 4: 이름 앞의 단일 밑줄

앞의 밑줄 변하기 쉬운 / 기능 / 메소드 이름은 프로그래머에게 내부 용도로만 사용되며 클래스가 원할 때마다 수정할 수 있음을 나타냅니다. 여기서 밑줄로 된 이름 접두사는 비공개로 처리됩니다. 지정하는 경우 수입에서 * _로 시작하는 모든 이름은 가져오지 않습니다. Python은 진정한 비공개를 지정하지 않으므로 __all__에 지정된 경우 다른 모듈에서 직접 호출할 수 있습니다. 약한 비공개

파이썬3




class> Prefix:> >def> __init__(>self>):> >self>.public>=> 10> >self>._private>=> 12> test>=> Prefix()> print>(test.public)> print>(test._private)>

>

C 프로그래밍의 행렬
>

10 12>

예 5: 숫자 리터럴의 단일 밑줄

Python 구문은 가독성을 높이기 위해 숫자 그룹화를 위한 시각적 구분 기호로 밑줄을 사용할 수 있도록 활용됩니다. 이는 대부분의 최신 언어의 일반적인 기능이며 긴 리터럴 또는 값을 부분으로 명확하게 구분해야 하는 리터럴의 가독성에 도움이 될 수 있습니다.

파이썬3




# grouping decimal for easy readability of long literals> amount>=> 10_000_000>.>0> # grouping hexadecimal for easy readability of long literals> addr>=> 0xCAFE_F00D> # grouping bits for easy readability of long literals> flags>=> 0b_0011_1111_0100_1110>

>

>

이름 앞에 이중 밑줄

선행 이중 밑줄은 Python 인터프리터에게 하위 클래스의 충돌을 피하기 위해 이름을 다시 쓰라고 지시합니다. 인터프리터는 클래스 확장과 Mangling이라는 기능을 사용하여 변수 이름을 변경합니다.

파이썬3




class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10>

김프 변경 색상

>

>

통역사로부터 전화

테스트파일.py

Python 인터프리터는 변수 이름을 ___로 수정합니다. 따라서 다른 클래스가 해당 변수에 직접 액세스할 수 없기 때문에 여러 번 Private 멤버로 사용됩니다. __의 주요 목적은 다음과 같습니다. 변하기 쉬운 /클래스 내 메소드만 클래스 외부에서 사용하려면 공개로 설정할 수 있습니다.

파이썬3




class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> >def> func(>self>)> >print>(>self>.__variable)>

>

>

통역사로부터 전화

이름 앞뒤에 이중 밑줄

이름은 __로 시작하고 Python의 특수 메소드를 고려하여 동일하게 끝납니다. Python은 사용자에 따라 연산자 오버로딩으로 사용할 수 있는 이러한 메서드를 제공합니다. Python은 사용자 정의 함수와 모듈의 함수를 구별하기 위해 이 규칙을 제공합니다.

파이썬3




class> Myclass():> >def> __add__(>self>,a,b):> >print> (a>*>b)>

>

>

통역사로부터 전화