프로그래밍 언어/Python

파이썬에서 “_” 변수의 목적

Rateye 2021. 11. 29. 00:28
728x90
반응형
질문 : 파이썬에서 단일 밑줄“_”변수의 목적은 무엇입니까?

이 코드에서 for _ 의 의미는 무엇입니까?

if tbh.bag:
    n = 0
    for _ in tbh.bag.atom_set():
        n += 1
답변

_ 는 Python에서 세 가지 주요 관습적인 용도를 가지고 있습니다.

  1. 대화 형 인터프리터 세션에서 마지막으로 실행 된 표현식의 결과를 보관합니다 ( docs 참조). 이 선례는 표준 CPython 통역사에 의해 설정되었으며 다른 통역사도 이에 따랐습니다.
  2. i18n에서 번역 조회 ( 예 : gettext 문서 참조)의 경우 다음과 같은 코드에서
    raise forms.ValidationError(_("Please enter a correct username"))
  3. 범용 "일시적"변수 이름 :
    1. 다음과 같은 코드에서와 같이 함수 결과의 일부가 의도적으로 무시되고 있음을 나타 내기 위해 (개념적으로는 삭제됩니다.)
      label, has_label, _ = text.partition(':')
    2. 함수 정의의 일부로 ( def 또는 lambda ) 서명이 고정되어 있지만 (예 : 콜백 또는 상위 클래스 API에 의해)이 특정 함수 구현에는 다음과 같은 코드에서와 같이 모든 매개 변수가 필요하지 않습니다.
      def callback(_): return True
      [오랫동안이 답변은이 사용 사례를 나열하지 않았지만 여기 에서 언급했듯이 명시 적으로 나열 할 가치가있을만큼 충분히 자주 나타났습니다.]
    이 사용 사례는 번역 조회 사용 사례와 충돌 할 수 있으므로 _ 를 일회용 변수로 사용하지 않아야합니다 (많은 사람들이 일회용 변수로 __ 정확히 이런 이유로). Linters는 종종이 사용 사례를 인식합니다. 예를 들어, year, month, day = date() day 이 사용되지 않으면 린트 경고를 발생시킵니다. day 이 정말로 필요하지 않은 경우 수정 사항 year, month, _ = date() 입니다. 람다 함수와 동일하게 lambda lambda arg: 1.0 은 하나의 인수를 필요로하지만 사용하지 않는 함수를 생성하며, 이는 lint에 의해 포착됩니다. lambda _: 1.0 을 작성하는 것입니다. 사용하지 않는 변수는 종종 버그 / 오타를 숨기고 있습니다 (예 : day 설정하지만 다음 줄에 dya

 

 

 

출처 : https://stackoverflow.com/questions/5893163/what-is-the-purpose-of-the-single-underscore-variable-in-python
728x90
반응형