Для чего нужна переменная с одним подчеркиванием «_» в Python?

StackOverflow https://stackoverflow.com/questions/5893163

Вопрос

Что означает в этом коде сгенерировать кодовый код после сгенерированного кода?

родовое слово
Это было полезно?

Решение

_ имеет четыре основных стандартных применения в Python:

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

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

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

Другие советы

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

Генеракодический код подчеркивания считается в Python переменной " Мне все равно " или " Выброс "

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

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

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

    родовое слово

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

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

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

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

  2. Для игнорирования определенных значений.(так называемое «мне все равно»)

  3. Для придания специального значения и функций именам переменных или функций.

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

  5. Для разделения цифр буквального значения числа.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top