Для чего нужна переменная с одним подчеркиванием «_» в Python?
-
28-10-2019 - |
Вопрос
Что означает в этом коде сгенерировать кодовый код после сгенерированного кода?
родовое словоРешение
_
имеет четыре основных стандартных применения в Python:
- Для хранения результата последнего выполненного выражения (/ оператора) в интерактивном сеанс переводчика. Этот прецедент был создан стандартным CPython. устный переводчик и другие переводчики последовали его примеру.
- Для поиска перевода в i18n (см.
gettext
документацию, например), например, в коде:
raise forms.ValidationError(_("Please enter a correct username"))
- В качестве одноразового имени переменной общего назначения для обозначения этой части
результата функции намеренно игнорируется (концептуально, он отбрасывается.), как в коде вроде:
label, has_label, _ = text.partition(':')
. - Как часть определения функции (с использованием кода
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 случаев использования подчеркивания.
-
Для сохранения значения последнего выражения в интерпретаторе.
-
Для игнорирования определенных значений.(так называемое «мне все равно»)
-
Для придания специального значения и функций именам переменных или функций.
-
Для использования в качестве функций «Интернационализация (i18n)» или «Локализация (l10n)».
-
Для разделения цифр буквального значения числа.
Вот хорошая статья с примерами от mingrammer .