Ssylka

Применение символа подчеркивания в Python

Символ подчеркивания (_) в Python используется для разделения слов в именах переменных и функций (snake_case), а также для обозначения констант (SCREAMING_SNAKE_CASE). Если имя переменной конфликтует с зарезервированным словом, добавляется подчёркивание в конце (class_). В именах dunder-методов (магических методов) используются двойные подчеркивания в начале и конце (__init__, __str__). Dunder-методы не вызываются напрямую, а служат для реализации встроенных операций. Специальные атрибуты, такие как __name__, __doc__, __file__ хранят информацию об объектах.
Применение символа подчеркивания в Python
Изображение носит иллюстративный характер

Подчеркивание может быть использовано для создания переменных-заглушек, которые не используются в коде (for _ in range(3)), или для присваивания значения из возврата функции, которое не нужно использовать (_ = save(obj, path)). Оно также используется для указания приватных методов и атрибутов классов (как _my_attribute или __my_method), однако это больше соглашение, чем строгое ограничение доступа. При использовании двойного подчеркивания Python производит "name mangling", заменяя имя атрибута или метода именем класса для большей приватности.

В Python 3 подчеркивание хранит результат последней операции в интерактивной сессии интерпретатора. Подчеркивания также служат визуальным разделителем для улучшения читаемости числовых значений (1_000_000). В functools.singledispatch подчеркивание используется как имя анонимной функции, предназначенной для обработки определенных типов данных. В контексте интернационализации (i18n) и локализации (l10n) _ служит псевдонимом для функции gettext, используемой для перевода текста. Кроме того, при распаковке составных объектов _ можно игнорировать ненужные значения.


Новое на сайте

19024Гравитационная ориентация и структура космических плоскостей от земли до сверхскоплений 19023Сколько частей тела и органов можно потерять, чтобы остаться в живых? 19022Зачем Сэм Альтман решил внедрить рекламу в бесплатные версии ChatGPT? 19021Хитроумная маскировка вредоноса GootLoader через тысячи склеенных архивов 19020Удастся ли знаменитому археологу Захи Хавассу найти гробницу Нефертити до ухода на покой? 19019Действительно ли «зомби-клетки» провоцируют самую распространенную форму эпилепсии и... 19018Генетический анализ мумий гепардов из саудовской Аравии открыл путь к возрождению... 19017Вредоносная кампания в Chrome перехватывает управление HR-системами и блокирует... 19016Глубоководные оползни раскрыли историю мегаземлетрясений зоны Каскадия за 7500 лет 19015Насколько глубоки ваши познания об эволюции и происхождении человека? 19014Как уязвимость CodeBreach в AWS CodeBuild могла привести к глобальной атаке через ошибку... 19013Затерянный фрагмент древней плиты пионер меняет карту сейсмических угроз Калифорнии 19012Генетические мутации вызывают слепоту менее чем в 30% случаев вопреки прежним прогнозам 19011Завершено строительство космического телескопа Nancy Grace Roman для поиска ста тысяч... 19010Вязкость пространства и фононы вакуума как разгадка аномалий расширения вселенной