이 코드에서 _
after 의 의미는 무엇입니까 for
?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
답변
_
파이썬에서 4 가지 주요 용도가 있습니다.
- 대화식 인터프리터 세션에서 마지막으로 실행 된 표현식 (/ statement)의 결과를 보유합니다. 이 선례는 표준 CPython 인터프리터에 의해 설정되었으며 다른 인터프리터도
- 다음
과 같은 코드에서와 같이 i18n에서 번역 조회 ( 예 : gettext 설명서 참조
) :
raise forms.ValidationError(_("Please enter a correct username"))
- 다음과 같은 코드에서와 같이 함수 결과의 일부가 의도적으로 무시되고 있음을 나타내는 일반적인 목적의 “throwaway”변수 이름입니다 (개념적으로 폐기 됨)
label, has_label, _ = text.partition(':')
. - 서명이 고정 된 (예 : 콜백 또는 부모 클래스 API) 함수 정의의 일부 (
def
또는lambda
)를 사용 하지만이 특정 함수 구현에는 다음과 같은 코드와 같이 모든 매개 변수가 필요하지 않습니다.callback = lambda _: True
(오랫동안이 답변은 처음 세 가지 유스 케이스 만 나열했지만 네 번째 케이스는 여기 에 표시된대로 명시 적으로 나열 할 가치가 있을 정도로 자주 나타났습니다. )
후자의 “throwaway variable or parameter name”유스 케이스는 translation lookup 유스 케이스와 충돌 할 수 있으므로 _
i18n 변환에도 사용되는 코드 블록에서 throwaway 변수로 사용하는 것을 피해야 합니다 (많은 사람들은 이중 밑줄을 선호합니다) ,, __
정확히이 이유로 버리기 변수).
답변
그것은 단지 변수 이름이며, 파이썬에서 _
버리기 변수 에 사용 하는 것이 일반적입니다 . 루프 변수가 실제로 사용되지 않음을 나타냅니다.
답변
밑줄 _
은 파이썬에서 ” I do n’t care “또는 ” Throwaway “변수로 간주됩니다
-
파이썬 인터프리터는 마지막 표현식 값을이라는 특수 변수에 저장합니다
_
.>>> 10 10 >>> _ 10 >>> _ * 3 30
-
밑줄
_
은 특정 값을 무시하는 데에도 사용됩니다. 특정 값이 필요하지 않거나 값이 사용되지 않으면 값을 밑줄에 지정하십시오.포장 풀기시 값 무시
x, _, y = (1, 2, 3) >>> x 1 >>> y 3
색인 무시
for _ in range(10): do_something()
답변
파이썬에서 밑줄을 사용하는 경우는 5 가지가 있습니다.
-
인터프리터에 마지막 표현식의 값을 저장합니다.
-
특정 값을 무시합니다. (소위“나는 상관 없다”)
-
vartiables 또는 기능의 이름에 특별한 의미와 기능을 부여합니다.
-
‘국제화 (i18n)’또는 ‘현지화 (l10n)’기능으로 사용합니다.
-
숫자 리터럴 값의 숫자를 구분합니다.
다음 은 mingrammer의 예제가 포함 된 멋진 기사입니다 .
답변
파이썬 언어에 관한 한 _
특별한 의미는 없습니다. 그것은 유효한 식별자 단지와 같은 _foo
, foo_
또는 _f_o_o_
.
특별한 의미 _
는 순전히 관례입니다. 몇 가지 경우가 일반적입니다.
-
변수를 사용하지 않을 때 더미 이름이지만 구문 / 의미론에 이름이 필요합니다.
# iteration disregarding content sum(1 for _ in some_iterable) # unpacking disregarding specific elements head, *_ = values # function disregarding its argument def callback(_): return True
-
많은 REPL / 쉘은 마지막 최상위 식의 결과를에 저장합니다
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._
특수한 경우에 사용_
합니다. -
컨텍스트 국제화 및 현지화
_
에서 기본 번역 함수의 별명으로 사용됩니다.현재 글로벌 도메인, 언어 및 로캘 디렉토리를 기반으로 현지화 된 메시지 번역을 반환합니다. 이 함수는 일반적으로 로컬 네임 스페이스에서 _ ()로 별칭이 지정됩니다 (아래 예 참조).