파이썬에서 단일 밑줄“_”변수의 목적은 무엇입니까?
이 코드에서 _
after 의 의미는 무엇입니까 for
?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
_
파이썬에서 4 가지 주요 관습적인 용도가 있습니다
- 대화 형 인터프리터 세션에서 마지막으로 실행 된 식 (/ 문)의 결과를 보관합니다. 이 선례는 표준 CPython 통역사에 의해 설정되었으며 다른 통역사도이를 따랐습니다.
- i18n에서 번역 조회 ( 예 : gettext 문서 참조 )는 다음과 같은 코드에서 볼 수 있습니다.
raise forms.ValidationError(_("Please enter a correct username"))
- 다음과 같은 코드에서와 같이 함수 결과의 일부가 의도적으로 무시되고 있음을 나타내는 범용 "폐기"변수 이름으로 사용됩니다 (개념 상 폐기 됨)
label, has_label, _ = text.partition(':')
. - 함수 정의의 일부로 (
def
또는을 사용하여lambda
) 서명이 고정되어 있지만 (예 : 콜백 또는 상위 클래스 API에 의해)이 특정 함수 구현에는 다음과 같은 코드에서와 같이 모든 매개 변수가 필요하지 않습니다.callback = lambda _: True
(오랫동안이 답변은 처음 세 가지 사용 사례 만 나열했지만 여기 에서 언급했듯이 네 번째 사례는 명시 적으로 나열 할 가치가 있을만큼 자주 나타났습니다 )
후자의 "일시적 변수 또는 매개 변수 이름"사용 사례는 번역 조회 사용 사례와 충돌 할 수 있으므로 _
i18n 번역에도 사용하는 코드 블록에서 일회용 변수로 사용하는 것을 피해야 합니다 (많은 사람들이 이중 밑줄을 선호 함). ,, __
정확히 이런 이유로 버리는 변수).
그것은 단지 변수 이름 일 뿐이며, 파이썬 _
에서는 일회용 변수 에 사용 하는 것이 관습입니다 . 루프 변수가 실제로 사용되지 않음을 나타냅니다.
밑줄 _
은 Python에서 " 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 가지가 있습니다.
인터프리터에 마지막 표현식의 값을 저장합니다.
For ignoring the specific values. (so-called “I don’t care”)
To give special meanings and functions to name of vartiables or functions.
To use as ‘Internationalization(i18n)’ or ‘Localization(l10n)’ functions.
To separate the digits of number literal value.
Here is a nice article with examples by mingrammer.
'Nice programing' 카테고리의 다른 글
iostream :: eof가 루프 조건 (예 :`while (! stream.eof ())`) 내부에서 잘못된 것으로 간주되는 이유는 무엇입니까? (0) | 2020.10.03 |
---|---|
ELMAH가 ASP.NET MVC [HandleError] 특성과 함께 작동하도록하는 방법은 무엇입니까? (0) | 2020.10.03 |
자바 스크립트 '바인딩'방법의 사용은 무엇입니까? (0) | 2020.10.03 |
datetime을 날짜로 어떻게 변환합니까 (Python에서)? (0) | 2020.10.03 |
ISO 8601 형식의 날짜를 어떻게 구문 분석합니까? (0) | 2020.10.03 |