7 способов использовать подчёркивание (_) в Python, о которых почти никто не знает

7 неожиданных способов использовать подчёркивание в Python Подчёркивание — не просто часть имён переменных! В этой статье рассказываем, как с его помощью улучшить читаемость кода, создать приватные переменные, работать с магическими методами и не только.

Многие начинающие программисты в Python считают подчёркивание (_) просто частью имён переменных. Но на самом деле этот символ выполняет важные и многофункциональные задачи, особенно в руках опытных разработчиков 🧫🐍

Давайте разберём 7 продвинутых применений подчёркивания в Python, которые удивят даже тех, кто уже пишет код не первый год.


🔁 1. Получение последнего вычисленного значения в REPL

Если вы работаете в интерактивной оболочке Python (например, в терминале или Jupyter Notebook), символ _ позволяет получить результат последней операции без сохранения его в переменную.

Пример:

>>> 5 + 10
15
>>> _ * 2
30

Очень удобно для быстрых расчётов — не нужно каждый раз вводить новое имя переменной ✨


🖂 2. Переменная-заглушка в цикле

Когда переменная цикла не используется в теле, вместо неё можно подставить _. Это подчёркивает: переменная намеренно игнорируется.

Пример:

for _ in range(3):
    print("Привет!")

Вывод:

Привет!
Привет!
Привет!

Такой подход часто используется при многократном повторении действий, где не важен индекс итерации.


💡 3. Разделение цифр для удобочитаемости

Большие числа тяжело читать. В Python можно визуально разделять числа подчёркиваниями, не влияя на значение.

Пример:

сумма = 1_000_000  # то же самое, что 1000000
print(сумма)

Вывод:

1000000

Полезно при работе с финансами 💸, наукой 🧪 или просто для читаемости.


🔐 4. Внутренние переменные и name mangling

Внутри классов переменные, начинающиеся с двойного подчёркивания (__var), считаются приватными. Python автоматически меняет их имя (name mangling), чтобы затруднить доступ извне.

Пример:

class Example:
    def __init__(self):
        self.__secret = "скрыто"

    def reveal(self):
        return self.__secret

e = Example()
# print(e.__secret)  # Ошибка!
print(e.reveal())     # работает ✅

📌 Хотя можно обойти это ограничение (e._Example__secret), делать так не рекомендуется. Это внутренний механизм!


⚠️ 5. Решение конфликтов с ключевыми словами

Если нужно использовать имя переменной, совпадающее с ключевым словом Python (например, class), добавьте подчёркивание в конце.

Пример:

def describe(class_):
    return f"Это класс: {class_}"

print(describe("Python"))

Теперь class_ — валидное имя, и вы избегаете конфликтов с синтаксисом языка.


🔏 6. Приватные атрибуты в классах

В дополнение к пункту 4: двойное подчёркивание в начале атрибута делает его "приватным". Это не защита, а соглашение для других разработчиков: «Не трогай это без нужды».

Пример:

class Hidden:
    def __init__(self):
        self.__data = "секрет"

h = Hidden()
# print(h.__data)  # ошибка
print(h._Hidden__data)  # сработает, но не стоит так делать

✨ 7. Магические (ду́ндер) методы

Методы с двойными подчёркиваниями по краям (__method__) — это магические методы, которые определяют поведение объектов при взаимодействии с оператором +, ==, print() и др.

Пример:

class Magic:
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return f"Magic с числом {self.value}"

print(Magic(42))

Вывод:

Magic с числом 42

🤹‍♀️ Полезная шпаргалка по магическим методам:

Метод

Что делает

__init__

Инициализация объекта

__str__

Текстовое представление (print())

__len__

Длина объекта

__call__

Делает объект вызываемым как функция

__getitem__

Доступ по индексу

__setitem__

Присваивание по индексу

__contains__

Оператор in

__eq__

Сравнение ==

__add__

Сложение +

__iter__

Делает объект итерируемым

🎯 Эти методы позволяют создавать собственные классы, ведущие себя как встроенные типы — красиво, лаконично и мощно.


✅ Итоги

Подчёркивание в Python — это не просто синтаксис, а многофункциональный инструмент:

  • помогает писать чище и понятнее

  • делает код выразительным

  • скрывает лишнее от пользователя

  • расширяет возможности классов

Попробуйте использовать эти техники в своём коде, и вы увидите, насколько Python становится ещё более мощным 💪🐍

Бесплатно
Кодик: Интерактивное обучение!
Изучай HTML, JavaScript, CSS, Python, PHP, SQL, Git
Проходи практические уроки!
Получи сертификат!
Вам может быть интересно

Не нашли нужной статьи?
Напишите нам и ее сделаем!

Бесплатно
Кодик: Интерактивное обучение!
Изучай HTML, JavaScript, CSS, Python, PHP, SQL, Git
Проходи практические уроки!
Получи сертификат!
Главная
Курсы
Блог
Меню