Какова цель единственного подчеркивания & ldquo; _ & rdquo; переменная в Python?

Правильная вещь - использовать код «escape-escape» для декодирования строки.

>>> myString = "spam\\neggs"
>>> decoded_string = bytes(myString, "utf-8").decode("unicode_escape") # python3 
>>> decoded_string = myString.decode('string_escape') # python2
>>> print(decoded_string)
spam
eggs

Не используйте AST или eval. Использование строковых кодеков намного безопаснее.

549
задан Bhargav Rao 22 February 2019 в 04:44
поделиться

1 ответ

Что касается языков Python, _ не имеет никакого особого значения. Это - допустимое идентификатор точно так же, как _foo, foo_ или _f_o_o_.

Любое особое значение _ просто условно. Несколько падежей общи:

  • макет А называет, когда переменная не предназначается, чтобы использоваться, но имя требуется синтаксисом/семантикой.

    # iteration disregarding content
    sum(1 for _ in some_iterable)
    # unpacking disregarding specific elements
    head, *_ = values
    # function disregarding its argument
    def callback(_): return True
    
  • Много REPLs/shells хранят результат последнего выражения верхнего уровня к builtins._.

    специальный идентификатор _ используется в интерактивном интерпретаторе для хранения результата последней оценки; это хранится в builtins модуль. Если не в интерактивном режиме, _ не имеет никакого особого значения и не определяется. [ источник ]

    из-за способа, которым имена ищутся, если не затененный глобальным или локальным _ определение, которое пустое _ отсылает к [1 113].

    >>> 42
    42
    >>> f'the last answer is {_}'
    'the last answer is 42'
    >>> _ = 4  # shadow ``builtins._`` with global ``_``
    >>> 23
    23
    >>> _
    4
    

    Примечание: Некоторые оболочки такой как [1 114] не присваивают [1 115], но особый случай _.

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

    gettext.gettext (сообщение)

    Возврат локализованный перевод сообщения, на основе текущего глобального домена, языка и каталога локали. Эта функция обычно искажается как _ () в локальном пространстве имен (см. примеры ниже).

0
ответ дан 22 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: