Python에서 단일 언더스코어 "_" 변수의 목적은 무엇입니까?
의 의미는 무엇입니까?_
후에for
★★★★★★★★★★★★★★★★?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
_
Python에서는 다음과 같은 세 가지 일반적인 용도가 있습니다.
인터프리터 세션에서 마지막으로 실행된 식 결과를 유지합니다(문서 참조).이 선례는 표준 CPython 통역사에 의해 설정되었으며 다른 통역사들이 이에 따라왔다.
i18n에서의 번역 검색의 경우(gettext 매뉴얼 참조 등)는 다음과 같습니다.
raise forms.ValidationError(_("Please enter a correct username"))
범용 "폐기" 변수 이름:
함수 결과의 일부가 의도적으로 무시되고 있음을 나타내는 것(개념상 폐기됨)은 다음과 같습니다.
label, has_label, _ = text.partition(':')
로서(어느쪽인가를 )
def
★★★★★★★★★★★★★★★★★」lambda
콜백 또는 시그니처가되지만, 이같은 모든def callback(_): return True
[오랫동안 이 답변에는 이 사용 사례가 기재되어 있지 않았지만, 여기에 기재되어 있는 것처럼 명확하게 기재할 가치가 있을 만큼 자주 기재되어 있었습니다.]
사용 수 있으므로 번역 룩업 사용 을 피해야 합니다.
_
됩니다(은 이중 합니다).__
(즉, 이러한 이유로 일회용 변수로 사용됩니다.)린터는 이 사용 사례를 인식하는 경우가 많습니다.를 들어, 「」입니다.
year, month, day = date()
보풀 경고가 표시됩니다.day
는 코드 후반부에서 사용되지 않습니다. 「」의 경우)day
하지 않다, 라고 쓰는 입니다.year, month, _ = date()
람다 함수도 마찬가지입니다.lambda arg: 1.0
하나의 인수가 필요하지만 사용하지 않는 함수를 만듭니다.이 함수는 보풀에 잡힙니다. 쓰는 게 이에요.lambda _: 1.0
. 하지 않는 set . 사타타타 / 세세세세 ( )을세세 is is is is is is is is is is is is is is is is is is is is is is)를 숨기는 경우가day
, ,, 용다다다이다를 사용한다.dya
(미치다)3. 이 이 "서 Python 3.10은 "언어 구문"으로 변경되었습니다.
match
: 케이스의 : " " " " 입니다._
와일드카드 패턴입니다.이 경우 런타임은 값을 심볼에 바인딩하지 않습니다.예에 는, 「 」 「 」 「 」 「 」 「 」 「 」 「 」를 참조해 .
_
는 여전히 유효한 변수 이름이기 때문에 오브젝트는 계속 존속행됩니다. 않은 나 외부 명시적인 「」( 「」)가 됩니다.del name
콜은 양쪽 모두 이름이 사용되고 있는 린터를 만족시키고 오브젝트에 대한 참조를 즉시 클리어합니다.
변수 일 뿐이고, 에서는 비단뱀을 사용하는 _
사용할 수 있습니다.루프 변수가 실제로 사용되지 않음을 나타냅니다.
줄_
Python에서는 I don't care 또는 Throughaway 변수로 간주됩니다.
식 을 특수 변수인 "예"에 합니다.
_
.>>> 10 10 >>> _ 10 >>> _ * 3 30
줄
_
또한 특정 값을 무시하는 경우에도 사용됩니다.특정 값이 필요하지 않거나 값이 사용되지 않으면 값을 밑줄에 할당합니다.압축을 풀 때 값 무시
x, _, y = (1, 2, 3) >>> x 1 >>> y 3
인덱스 무시
for _ in range(10): do_something()
Python에서 언더스코어를 사용하는 경우는 5가지입니다.
인터프리터에 마지막 식 값을 저장합니다.
특정 값을 무시합니다.(이른바 '상관없다')
변수나 함수의 이름에 특별한 의미와 함수를 부여한다.
'국제화(i18n)' 또는 '로컬라이제이션(l10n)' 기능으로 사용합니다.
숫자 리터럴 값의 자릿수를 구분합니다.
여기 mingrammer의 예가 있는 멋진 기사가 있다.
한 Python 언어는_
일반적으로 특별한 의미는 없습니다.다음과 같은 유효한 식별자입니다._foo
,foo_
★★★★★★★★★★★★★★★★★」_f_o_o_
.
유일한 예외는 다음과 같습니다.match
Python 3.10:
①의
case
a의match
「」,_
는 와일드카드 송신원을 나타내는 soft 키워드입니다.
않은 경우, " "의 는과 같습니다._
이치노인 경우가 가지 있다: 몇가가 several several several several several several several 。
변수를 사용하지 않지만 구문/의미학에서 이름이 필요한 경우 더미 이름입니다.
# iteration disregarding content sum(1 for _ in some_iterable) # unpacking disregarding specific elements head, *_ = values # function disregarding its argument def callback(_): return True
은 마지막 식를 "/"에 합니다.
builtins._
." " "
_
하기 위해 이 은 인터랙티브인터프리터에 됩니다.이 값은builtins
모드가 경우_
특별한 의미가 없고 정의되어 있지 않습니다.[출처]에 따라 로컬로 되지 않는 한.
_
_
가리키다builtins._
.>>> 42 42 >>> f'the last answer is {_}' 'the last answer is 42' >>> _ 'the last answer is 42' >>> _ = 4 # shadow ``builtins._`` with global ``_`` >>> 23 23 >>> _ 4
주의: 다음과 같은 셸이 있습니다.
ipython
하지 않다builtins._
, 특수문자 「」, 「」_
.및 현지화 에서 '국제화 및
_
는 프라이머리 변환 기능의 에일리어스로 사용됩니다.gettext.gettext(메시지)
현재 글로벌 도메인, 언어 및 로케일 디렉토리를 기반으로 현지화된 메시지 변환을 반환합니다.는 보통 .
_()
로컬 네임스페이스에 있습니다(아래 예 참조).
언급URL : https://stackoverflow.com/questions/5893163/what-is-the-purpose-of-the-single-underscore-variable-in-python
'programing' 카테고리의 다른 글
MariaDB 10.1.21 Galera 클러스터가 "Cannot create test file" / datadir confusion" 오류와 함께 시작되지 않음 (0) | 2022.11.17 |
---|---|
Vuex 스토어에서 모든 인스턴스를 업데이트합니다. 현재 인스턴스만 업데이트하십시오. (0) | 2022.11.17 |
Python3:ImportError: 모듈 다중 처리에서 값을 사용할 때 '_ctypes'라는 이름의 모듈이 없습니다. (0) | 2022.11.17 |
목록의 목록을 바꿉니다. (0) | 2022.11.17 |
intl-tel-input과 vuejs2의 병용 (0) | 2022.11.17 |