Найти в Дзене
Вокруг IT

7 примеров, как питонисты используют символ подчеркивания «_»

1. Переменная-пустышка. Иногда мы хотим показать читателю нашего кода: эта переменная используется только здесь и сейчас, далее она нам не понадобится. Например, при распаковке последовательности нужны только первый и последний элементы. Используем распаковку со звездочкой: a, *_, b = (0, 1, 2, 4, 8) 2. Последнее значение в интерпретаторе Python. В переменной под именем _ хранится последнее вычисленное значение в интерпретаторе Python. А в IPython можно использовать переменную из двух нижних подчеркиваний для предыдущего вычисленного элемента и трёх нижних подчеркиваний для предпредыдущего. 3. Одиночное подчеркивание в начале имени объекта, указывает на его частную природу. Например, такие объекты на уровне модуля не импортируются из других модулей по инструкции from module import * Однако к внутренним функциям можно получить доступ по такому имени. 4. Полностью «закрыть» метод или атрибут внутри класса можно с помощью двойного подчеркиваниия в начале имени. Интерпретатор «исказит» так

1. Переменная-пустышка. Иногда мы хотим показать читателю нашего кода: эта переменная используется только здесь и сейчас, далее она нам не понадобится.

Например, при распаковке последовательности нужны только первый и последний элементы. Используем распаковку со звездочкой:

a, *_, b = (0, 1, 2, 4, 8)

2. Последнее значение в интерпретаторе Python. В переменной под именем _ хранится последнее вычисленное значение в интерпретаторе Python.

А в IPython можно использовать переменную из двух нижних подчеркиваний для предыдущего вычисленного элемента и трёх нижних подчеркиваний для предпредыдущего.

3. Одиночное подчеркивание в начале имени объекта, указывает на его частную природу. Например, такие объекты на уровне модуля не импортируются из других модулей по инструкции

from module import *

Однако к внутренним функциям можно получить доступ по такому имени.

4. Полностью «закрыть» метод или атрибут внутри класса можно с помощью двойного подчеркиваниия в начале имени. Интерпретатор «исказит» такое имя, добавив название класса. Это удобный подход, чтобы избежать конфликта имен.

5. Если же двойное подчеркивание есть и в начале, и в конце метода класса, перед нами специальный метод. Классический пример: метод инициализации класса __init__().

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

Например, чтобы получать строковые представления атрибутов в NLP-фреймворке spaСy, нужно добавлять к имени символ подчеркивания _ (пример).

7. Начиная с Python 3.6 символ подчеркивания удобно использовать для улучшения восприятия больших чисел, когда приходится их приводить в обычном десятичном формате. Сравните:

>>> 1_000_000_000

1000000000

О каких из этих особенностей Python и каких принятых соглашениях вы уже знали? Поделитесь, пожалуйста, в комментариях.

#программирование на python