Какие существуют варианты использования одиночного подчеркивания (_) в Python

Ответ

В Python одиночное подчеркивание (_) — это не специальный синтаксис, а переменная, используемая по соглашению (convention) в нескольких различных сценариях.

  1. Игнорирование значения: Используется как "одноразовая" переменная, когда значение не важно и не будет использоваться. Часто встречается при распаковке кортежей или в циклах.

    # Игнорируем второй элемент
    a, _, c = (1, 2, 3)
    # print(a, c) -> 1 3
    
    # Значение итератора не нужно
    for _ in range(5):
        print("Hello, World!")
  2. Результат последнего выражения в REPL: В интерактивной консоли Python (REPL) _ автоматически хранит результат последнего выполненного выражения.

    >>> 10 + 5
    15
    >>> _ * 2
    30
  3. Соглашение для "внутренних" имен: Префикс _ (например, _internal_var) является соглашением, которое подсказывает другим разработчикам, что переменная или метод предназначены для внутреннего использования в модуле или классе и не являются частью публичного API.

  4. Локализация и интернационализация (i18n): В библиотеках для перевода, таких как gettext, _ часто используется как псевдоним для функции перевода строк.

    import gettext
    gettext.bindtextdomain('myapp', '/path/to/locale')
    gettext.textdomain('myapp')
    _ = gettext.gettext
    
    print(_('This is a translatable string.'))
  5. Разделитель в числовых литералах: Начиная с Python 3.6, _ можно использовать для визуального разделения разрядов в числах, что улучшает их читаемость.

    one_million = 1_000_000
    hex_address = 0xFF_EC_DE_5E