Трюки Python с использованием символа нижнего подчеркивания ( _ )

Опубликован: 19.11.2023 102

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

Символ ( _ ) можно использовать для ссылки на объект или изменения имени переменных, функций, классов и т.п.

Существует несколько вариантов использования символа ( _ ):

  • разделение цифр в длинных числовых значениях;
  • игнорирование значений;
  • сохранение последнего значения (при работе в интерпретаторе);
  • придание особого значения переменным, функциям, методам.

Разделение цифр в числах.

Одним из интересных способов применения символа ( _ ) является его использование в качестве визуального разделителя для группировки цифр (например, по разрядам в длинных числовых значениях) - было введено в Python 3.6 (PEP 515).

К примеру, число в 2,5 млрд можно представить как: 2_500_000_000

Такое визуальное представление числа никак не влияет на его значение и использование в вычислениях.

Кроме того, символ ( _ ) можно использовать для разделения частей двоичных, восьмеричных или шестнадцатеричных чисел.

# разделение больших числовых значений по разрядам:
num = 2_500_000_000

print(num)
2500000000
print(num + 300)
2500000300

Игнорирование значений при распаковке или в цикле for.

Идентификатор ( _ ) можно также использовать для игнорирования значений, например, при распаковке объектов или в цикле for, если эти значения не будут использоваться дальше в программе.

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

# игнорирование значений при распаковке
a, *_, b = [1, 2, 3, 4, 5]
print(f"{a=} {b=}")
a=1 b=5

# игнорирование значений в цикле for
for _ in range(10):
    print( _ , end=' ')
0 1 2 3 4 5 6 7 8 9

Сохранение интерпретатором Python последнего значения в ( _ ).

Интерпретатор сохраняет результат последнего вычисления в переменной ( _ ), что делает доступным использование этой переменной в последующих операциях, в том числе присвоение ее значения другой переменной.

5 + 7
12
print( _ )
12
print( _ + 3)
15
x = _
print(x)
15

Придание особого значения переменным, функциям, методам.

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

  • один символ подчеркивания в начале имени (_variable) делает переменную, функцию, метод, класс приватными объектами;
  • один символ подчеркивания в конце имени (variable_) используется для предотвращения конфликта с ключевыми (зарезервированными) словами Python (например, использование локальной переменной list_ или sum_ позволяет избежать конфликта с встроенными функциями list(), sum());
  • два символа подчеркивания в начале имени (__variable) изменяют имена атрибутов класса на приватные (это делает невозможным прямой доступ к ним с помощью ClassName.__metod);
  • два символа подчеркивания в начале и в конце имени (__variable__) используется для создания специальных переменных или методов (так называемых «магических методов») классов (например, __init__ или __len__).

Похожие посты

Методы преобразования списка в строку и обратно

Удаление дубликатов из списка

Фильтрация элементов итератора с помощью bool-списка функции itertools.compress()

Пропуск не нужных элементов последовательности с помощью itertools.dropwhile()

Комментариев нет.