Какова цель единственной подчеркивающей переменной "_" в Python?

В чем смысл _ после for в этом коде?

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

Ответ 1

_ имеет 4 основных традиционных использования в Python:

  1. Чтобы сохранить результат последнего выполненного выражения (/оператора) в интерактивном сессия переводчика. Этот прецедент был установлен стандартным CPython переводчик и другие переводчики последовали его примеру
  2. Для поиска перевода в i18n (см. Gettext документация, например), как в коде, как: raise forms.ValidationError(_("Please enter a correct username"))
  3. Как правило, одноразовое имя переменной для обозначения этой части результата функции намеренно игнорируется (Концептуально он отбрасывается.), как в коде: label, has_label, _ = text.partition(':').
  4. Как часть определения функции (с использованием def или lambda), где подпись фиксируется (например, с помощью функции обратного вызова или родительского класса), но эта конкретная реализация функции не нуждается во всех параметры, как в коде, как: callback = lambda _: True

(Долгое время в этом ответе перечислялись только первые три варианта использования, но четвертый случай встречался достаточно часто, как отмечалось здесь, чтобы стоить перечислять его в явном виде)

Последние случаи использования одноразовой переменной или имени параметра могут конфликтовать со случаем использования поиска перевода, поэтому необходимо избегать использования _ в качестве одноразовой переменной в любом блоке кода, который также использует его для перевода i18n (многие люди предпочитают двойное подчеркивание, __, как их одноразовая переменная именно по этой причине).

Ответ 2

Это просто имя переменной, и в python принято использовать _ для переменных throwaway. Он просто указывает, что переменная цикла фактически не используется.

Ответ 3

Подчеркивание _ считается переменной " I do not Care " или " Throwaway " в Python

  • Интерпретатор python сохраняет последнее значение выражения специальной переменной, называемой _.

    >>> 10 
    10
    
    >>> _ 
    10
    
    >>> _ * 3 
    30
    
  • Подчеркивание _ также используется для игнорирования конкретных значений. Если вам не нужны конкретные значения или значения не используются, просто назначьте значения для подчеркивания.

    Игнорировать значение при распаковке

    x, _, y = (1, 2, 3)
    
    >>> x
    1
    
    >>> y 
    3
    

    Игнорировать индекс

    for _ in range(10):     
        do_something()
    

Ответ 4

Есть 5 случаев использования подчеркивания в Python.

  1. Для хранения значения последнего выражения в интерпретаторе.

  2. Для игнорирования конкретных значений. (так называемый "я не забочусь")

  3. Предоставлять особые значения и функции для обозначения vartiables или функций.

  4. Использовать функции "Интернационализация (i18n)" или "Локализация (l10n)".

  5. Отделить цифры числа буквальное значение.

Вот хорошая статья с примерами по mingrammer.