Что такое знаки подчеркивания
Перейти к содержимому

Что такое знаки подчеркивания

  • автор:

Русский [ править ]

Приставка: под-; корень: -чёрк-; суффиксы: -ива-ниj; окончание: [Тихонов, 1996] .

Произношение [ править ]

  • МФА: [ pɐˈt͡ɕːɵrkʲɪvənʲɪɪ̯ə ]

Семантические свойства [ править ]

Значение [ править ]
  1. книжн.обращение особенного внимания (слушателя, читателя, зрителя) на что-нибудь, выделение как чрезвычайно важного ◆ Здесь нельзя было применить всегда выручающее художника усиление, искусственное подчёркивание формы для выражения её силы — только строго в той же мере, в какой удастся выразить другую сторону человека — духовную. И. А. Ефремов, «Лезвие бритвы», 1959–1963 гг. [НКРЯ] ◆ Назойливо это подчёркивание , не нужно. В. П. Астафьев, «Зрячий посох», 1978–1982 гг.
  2. проведение черты под чем-нибудь, обычно словами ◆ Отсутствует пример употребления (см. рекомендации ).

Зачем Python столько знаков подчеркивания?

Знак подчеркивания “_” — не изобретение Python, другие языки программирования также используют символ “_” в своих сценариях; однако в семантике языка Python знак подчеркивания фигурирует особенно часто: первое, с чем сталкивается новичок в изучении объектно-ориентированного программирования на Python — это метод конструктора объекта __init__ , у которого в сигнатуре аж четыре подчеркивания!

По мере изучения и практики языка Python для вас открывается все больше возможностей с помощью банального использования символа нижнего подчеркивания улучшить надежность своего кода, либо даже привнести некоторый новый функционал в программу.

В статье перечислены следующие приёмы разностороннего улучшения кода с помощью символа нижнего подчеркивания “_”:

  1. Создание временных переменных на Python.
  2. Улучшение читаемости кода на Python.
  3. Разрешение конфликта имён в программе на Python.
  4. Создание изолированных (внутренних, инкапсулированных, “приватных”) атрибутов для объектов Python.
  5. Создание защищенных от перезаписи атрибутов для объектов Python.
  6. Переопределение магических методов и специальных атрибутов объектов Python.

1. Временная переменная

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

Последний результат REPL

Аббревиатура REPL расшифровывается как “Read Evaluate Print Loop”, что в переводе означает “Чтение Оценка Печать Цикл”. Запуская что-либо в консоли Python, результат работы программы будет записан в REPL в виде переменной. У этой переменной нет имени, и в качестве идентификатора для неё как раз подойдет один знак нижнего подчеркивания.

Ознакомиться с крайне типичным примером получения сохраненных в REPL результатов выполнения программы можно при использовании среды Jupyter Notebook. Предположим, в первой ячейке вашего блокнота инициирован запуск чего-либо — это значит, что в последующей ячейке доступ к результату выполнения программного кода первой ячейки можно получить с помощью символа нижнего подчеркивания:

Однако следует помнить, что тип данных None не буферизируется, из-за чего значение переменной с идентификатором в виде одного символа нижнего подчеркивания НЕ заменяется на None , оставаясь равным результату вычислений самой первой ячейки, как в примере ниже.

Анонимная переменная

Кроме идентификатора для временной переменной, одинарным знаком нижнего подчеркивания также называют те переменные, в именовании которых особенным образом нет необходимости. Зачастую подобные переменные используются в программе всего один раз, в чем и причина их именования идентификатором, который вскоре будет переназначен.

for _ in range(10000): 
# Сделать что-то 10000 раз
pass

В приведенном выше примере фрагмент кода выполняется 10k раз подряд с помощью цикла for ; однако не имеет значение, какая сейчас итерация цикла, а потому в качестве идентификатора для переменной с номером итерации выбран одинарный символ нижнего подчеркивания.

Более того, большинство из популярных интегрированных средств разработки по умолчанию знакомы с “эмпирическим правилом” идентификатора-подчеркивания, поэтому переменная с таким идентификатором не проверяется на предмет использования в остальном коде программы; и наоборот, при назначении переменной в вышеописанном цикле for уникального идентификатора, некоторые инструменты интегрированной среды разработки могут начать выдавать разработчику предупреждение о том, что он случайно “определил переменную без её использования”.

Универсальный заполнитель

Еще одно распространенное использование символа нижнего подчеркивания в качестве идентификатора временной переменной — это создание заполнителя; зачастую такой приём используется для извлечения значений из кортежа, как в примере ниже.

my_tuple = (1, 2)x, _ = my_tuple
print(x)

Как показано на примере, в качестве значения переменной x присваивается значение первого из элементов кортежа. А вот вторая переменная игнорируется, поскольку идентификатор-подчёркивание без лишних слов даёт понять, что она используется в качестве “заполнителя”.

Также следует упомянуть о малоизвестном трюке, который заключается в совместном использовании символа звездочки с идентификатором-подчеркиванием ради создания переменной-“заполнителя” с несколькими значениями. Предположим, что обозначен кортеж с несколькими элементами, задача — получить из него значения первого и последнего элементов:

my_long_tuple = (1, 2, 3, 4, 5)x, *_, z = my_long_tuple
print('x =', x)
print('z =', z)

Теперь не имеет значения, сколько элементов содержится в кортеже — переменные x и z всегда будут ссылаться на значения первого и последнего из них.

2. Улучшение читаемости кода

Сейчас речь пойдет о гораздо более известном, чем предыдущий, приёме использования символа нижнего подчеркивания; тем не менее мы всё равно рассмотрим его, несмотря на широкую славу, потому что этот маленький трюк в значительной степени улучшает читаемость чисел в программе.

num = 1_000_000
print(num)

Многие программисты разделяют каждые три цифры числа символом нижнего подчеркивания, чтобы прочитать большое число было легче. Эта странность вызвана тем, что синтаксис Python не позволяет писать большие числа через запятую, зато символ подчеркивания в таком случае разрешен.

Кроме того, разрешается буквально поставить знак подчеркивания в любом случайном месте посреди числа без какого-либо влияния на результат выполнения программы:

num = 100_0000
print(num)

3. Разрешение конфликта имён

Символ нижнего подчеркивания также используется многими разработчиками для избегания появления конфликтов в пространствах имён, при том что на уровне интерпретатора для такого использования подчеркивания нет никакого официального функционала. Таким образом, это еще одно “эмпирическое правило” использования символа нижнего подчеркивания в коде.

Например, необходимо определить функцию получения “класса” (разновидности) некоторых продуктов. Если написать код следующим образом, то будет выброшено исключение SyntaxError :

def print_class(class): 
print('Class:', class)

Ошибка возникает из-за того, что идентификатор class является одним из зарезервированных ключевых слов в Python. При его использовании Python автоматически начинает считать, что мы хотим определить класс объектов, но синтаксис для такой операции, очевидно, неверен.

Чтобы избежать использования зарезервированного ключевого слова в качестве идентификатора, но сохранить при этом описательный характер имени переменной, как правило, после ключевого слова в идентификаторе ставится знак нижнего подчеркивания, как показано ниже.

def print_class(class_): 
print('Class:', class_)
print_class('Premium')

Конечно, никто не обязан использовать именно слово “class” в качестве идентификатора для переменной, потому что это просто имя переменной; однако иногда именно такое название существенно улучшает читаемость кода, в таком случае не хочется — и не нужно, как мы узнали только что — избегать использования зарезервированных ключевых слов.

4. Изолированный атрибут объекта

Символ нижнего подчеркивания также используется для защиты некоторых атрибутов и методов в том случае, когда мы хотим оградить атрибут от использования вне объекта, которому он принадлежит.

Защита от импорта

Например, в файле с расширением .py пределены ряд констант и функций. После сохранения данного файла, любой программист может попробовать импортировать его в качестве модуля в другой файл программы; однако может статься так, что оный Python файл содержит исключительно локальные вспомогательные функции, которые не должны быть импортированы для использования в другой среде.

В таком случае проблему решает добавление знака нижнего подчеркивания перед константами или функциями: теперь они не будут импортироваться при выполнении команды from … import * .

Давайте создадим файл lib.py и внутри него определим следующие две функции:

def test_func(): 
print("I'm a test")
def _test_func():
print("I'm a _test")

Далее, в другом файле, выполним импорт всего содержимого из нашего модуля lib.py :

from lib import *

Теперь легко проверить, что первая test_func() была успешно импортирована, чего нельзя сказать о функции _test_func() !

Однако, пожалуйста, воспринимайте вышеописанный приём как “удобное средство”, предотвращающее импорт ненужных функций. Данный трюк НЕ помешает другому программисту явно импортировать куда угодно всё, что он захочет.

Явный импорт продолжает работать:

from lib import _test_func

5. Защищенные атрибуты класса

Символ нижнего подчеркивания помогает организовать защиту не только от лишнего импорта ненужных функций, но и от вызова извне сугубо внутренних атрибутов и методов класса.

Для защиты атрибутов класса от вызова извне нужно добавить двойное подчеркивание __ в самом начале идентификаторов тех атрибутов или методов, которые необходимо защитить от перезаписи.

Для примера мы определим класс под названием Person , а затем создадим его экземпляр:

class Person(): 
def __init__(self, name, age):
self.name = name
self.__age = age
def show(self):
print(f"Меня зовут и мне лет")
def __show(self):
print(f"Привет , ты меня вызвал!")
p1 = Person('Chris', 33)

Таким образом, для вывода на экран заранее заданной строки идеально подойдёт метод show() :

Тем не менее, если попытаться получить доступ к значению атрибута __name или вызвать метод __show(), которые “защищены” двойными подчеркиваниями в самом начале их идентификаторов, то произойдёт выброс исключения, и программа прекратит работу.

Опять же, эта “защита” не прописана на уровне интерпретатора, она удобна лишь тогда, когда хочется скрыть от вызова какой-то внутренний функционал класса, потому что всегда можно прибегнуть к явному вызову атрибута или метода: просто добавьте перед ними указание _ :

6. Специальные атрибуты и магические методы

Про магические методы знает каждый, но данный аспект настолько важен, что его нельзя пропускать так или иначе. Метод-конструктор __init__() , который использовался в одном из первых примеров статьи, как раз таки относится к магическим методам, в документации языка программирования Python называемым “специальные атрибуты”. Кроме метода-конструктора, одним из самых важных магических методов каждого класса можно назвать __repr__() , определяющий, что должно быть выведено при запросе строкового представления объекта. Если вы знакомы с Java, то легко узнаете в методе __repr__() примерный аналог toString() .

Для примера определим класс Person и переопределим его метод __repr__() , чтобы настроить вывод на экран при передаче функции print() экземпляра данного класса.

В первом примере метод __repr__() не переопределён, в следствии чего функция print() просто сообщает нам имя класса и его адрес в памяти компьютера, что не очень полезно для отладки:

class Person(): 
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person('Chris', 33)
print(p1)

Теперь давайте переопределим функцию __repr__() и попробуем снова:

def __repr__(self): 
return f"Меня зовут и мне лет."

Вывод

В статье представлены несколько приёмов, связанных с использованием символа нижнего подчеркивания в языке программирования Python. Некоторые из них позволяют получить дополнительные возможности в программировании, другие — улучшают читабельность и надежность кода программы. Кроме того, в статье рассмотрены способ защиты от импорта объектов, необходимых только для организации локальной работы одного модуля и способ защиты от перезаписи атрибутов/методов классов.

К вышеописанным советам стоит прислушаться хотя бы потому, что они ускорят ваш процесс понимания кода других Python-программистов.

Жизнь коротка, используйте Python!

Значение словосочетания «знак подчёркивания»

Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!

Спасибо! Я стал чуточку лучше понимать мир эмоций.

Вопрос: акцепция — это что-то нейтральное, положительное или отрицательное?

Нейтральное
Положительное
Отрицательное

Ассоциации к слову «знак&raquo

Ассоциации к слову «подчёркивание&raquo

Синонимы к слову «знак&raquo

Синонимы к слову «подчёркивание&raquo

Предложения со словосочетанием «знак подчёркивания&raquo

  • В хэштегах нельзя использовать пробел, но можно – нижний знак подчёркивания. Нельзя #Панда копирайтинг, но можно #Панда_копирайтинг и #Пандакопирайтинг.

Сочетаемость слова «знак&raquo

  • условный знак
    вопросительный знак
    товарный знак
  • в знак согласия
    в знак приветствия
    в знак благодарности
  • система знаков
    люди знака
    форму вопросительного знака
  • знак подаёт
    знаки говорят
    знак появился
  • кивнуть в знак согласия
    видеть знак
    поставить знак равенства
  • (полная таблица сочетаемости)

Сочетаемость слова «подчёркивание&raquo

  • символ подчёркивания
  • (полная таблица сочетаемости)

Афоризмы русских писателей со словом «знак&raquo

  • Знаки препинания, служащие нотами при чтении, расставлены… как пуговицы на мундире гоголевского городничего.

Отправить комментарий

Дополнительно

  • Как правильно пишется слово «знак»
  • Как правильно пишется слово «подчёркивание»
  • Разбор по составу слова «знак» (морфемный разбор)
  • Разбор по составу слова «подчёркивание» (морфемный разбор)

Смотрите также

Значение слова «знак&raquo

ЗНАК , -а, м. 1. Предмет, изображение, метка и т. п., служащие для обозначения чего-л., указания на что-л. Опознавательные знаки.

Значение слова «подчёркивание&raquo

ПОДЧЁРКИВАНИЕ , -я, ср. 1. Действие по знач. глаг. подчеркивать. Подчеркивание ошибок в диктанте.

Предложения со словосочетанием «знак подчёркивания&raquo
  • В хэштегах нельзя использовать пробел, но можно – нижний знак подчёркивания. Нельзя #Панда копирайтинг, но можно #Панда_копирайтинг и #Пандакопирайтинг.
  • Однако в конце его имени стоял знак подчёркивание.
  • Издалека движущийся предмет более всего походил на знак подчёркивания.
  • (все предложения)
Синонимы к слову «знак&raquo
Синонимы к слову «подчёркивание&raquo
  • акцентирование
  • нюансировка
  • выразительность
  • фразировка
  • заострение
  • (ещё синонимы. )
Ассоциации к слову «знак&raquo
Ассоциации к слову «подчёркивание&raquo
Сочетаемость слова «знак&raquo
  • условный знак
  • в знак согласия
  • система знаков
  • знак подаёт
  • кивнуть в знак согласия
  • (полная таблица сочетаемости. )
Сочетаемость слова «подчёркивание&raquo
  • символ подчёркивания
  • (полная таблица сочетаемости. )
Морфология
  • Разбор по составу слова «знак»
  • Разбор по составу слова «подчёркивание»
Правописание
  • Как правильно пишется слово «знак»
  • Как правильно пишется слово «подчёркивание»

Карта слов и выражений русского языка

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

Справочная информация по склонению имён существительных и прилагательных, спряжению глаголов, а также морфемному строению слов.

Сайт оснащён мощной системой поиска с поддержкой русской морфологии.

Нижнее подчеркивание

Подчеркивание может быть способом разделения слов, особенно в языках программирования; речь идет о змеином футляре , варианте верблюжьего футляра .

Подчеркивание или подчеркнуто , иногда называют суб-тире , подчеркивание , символ подчеркивания , подчеркивание ( на английском языке), отступы 8 (на той же клавише, что и число «8» на клавиатуре французский AZERTY) является признаком типографская , обозначается символом » _ «.

Он используется для подчеркивания элемента путем наложения (если это позволяет техника) или путем наложения . Иногда его используют для замены пробела , когда его использование невозможно, чтобы отделить два элемента текста. Однако он не заменяет дефис (-) или дефис (- и -).

Резюме

  • 1 рассказ
  • 2 Использование
  • 3 Примечания и ссылки
  • 4 См. Также

История

Подчеркивание впервые появилось на пишущих машинках до 1902 года и не существовало в свинцовой высокой печати. Это позволяло подчеркивать текст, возвращаясь в область, чтобы применить его как наложение. Использование подчеркивания на пишущих машинках иногда ограничивалось определенными соглашениями, и его использование требовало особого обращения.

Подчеркивания не было в ранних наборах символов (ITA2, Fieldata). В первом стандарте ASCII (X3.4-1963) позиция (номер), которая ему выделена, присваивается левой стрелке, означающей, что подразумевает / заменяется на .

Восьмибитная система кодирования символов была представлена ​​IBM в 1964 году ( EBCDIC ) одновременно с IBM 360 . Это добавление бита размером с символ позволило добавить некоторые знаки препинания, включая подчеркивание, которое IBM назвала символом разрыва . Документ IBM на языке NPL оставляет набор символов свободным, но особо упоминает символ разрыва , давая в качестве примера идентификатор без пробелов, состоящий из трех слов: RATE_OF_PAY .

В 1967 году подчеркивание расширилось до ASCII, заменив символ стрелки влево (←) в кодовой точке 95 (5F шестнадцатеричный) ASCII 1963 года.

Язык C , разработанный в Bell Labs в начале 1970-х годов, также позволял использовать символы подчеркивания в качестве буквенного символа.

В Unicode появляются другие символы:

  • U + 02CD ИЗМЕНИТЬ БУКВУ НИЗКИЙ МАКРОН (_)
  • U + 0331 ОБЪЕДИНЕНИЕ МАКРОНА НИЖЕ (ˍ)
  • U + 0332 ОБЪЕДИНЕНИЕ НИЗКОЙ ЛИНИИ (̱‍̲)
  • U + 2017 ДВОЙНАЯ НИЗКАЯ ЛИНИЯ (‗)
  • U + FF3F (_)

использовать

На пишущих машинках подчеркивание позволяло, набирая его поверх уже написанных символов, получать подчеркивание. В настоящее время при использовании определенных текстовых редакторов его можно использовать для создания поля, которое необходимо заполнить в форме (пример: ________), или для создания горизонтальной разделительной линии, если нет другого метода. В программе Microsoft Word все, что вам нужно сделать, это ввести одно за другим три подчеркивания, чтобы программа автоматически создала полное горизонтальное разделение.

Подчеркивание также является диакритическим знаком в некоторых африканских и американских языках .

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

Иногда он заменяет подчеркивание, предлагая его, когда оно помещается по обе стороны от слова (пример: «Я перечитал _Phèdre_»). Последний метод также используется для получения функциональных возможностей форматирования, например, в программах обмена мгновенными сообщениями или на дискуссионных форумах.

В LaTeX он используется для размещения элемента, следующего за этим символом, в нижнем индексе .

Примечания и ссылки

  1. ↑ (in) Hickok, William Eugene, 1858-, The Correspondent’s Manual; Практика для стенографистов, операторов пишущих машинок и клерков; Содержит некоторую практическую информацию о приеме писем и советы по написанию писем, как это делать и как этого не делать (1902 г.) , Бостон. Ли и Шепард ( читать онлайн )
  2. ↑« Маленькие уроки типографики » , на tex.loria.fr , 1990 г. (по состоянию на 11 декабря 2018 г. )
  3. ↑ (in) Со Релле, Руперт Питт, 1871-1937; Грегг, Джон Роберт, 1867-1948, Секретарские исследования ([около 1922]) , Нью-Йорк, Чикаго и т. Д. Издательство Gregg (читать онлайн)
  4. ↑http://www.wps.com/projects/codes/X3.4-1963/page6.JPG
  5. ↑ (in) Технический отчет о NPL , IBM, 1964 г. ( читать онлайн ) , стр. 23
  6. ↑ Эрик Фишер , Эволюция кодов символов, 1874-1968 ( читать онлайн [PDF] )
  7. ↑ Деннис Ричи , Справочное руководство C , 1975? ( читать онлайн [PDF] )
  8. ↑ (in) « Дерзкий огненный шар: документация по синтаксису Markdown »

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *