Понимание того, что представляют символы подчеркивания в Python, а также другие соглашения об именах!
Введение
Инженеры-программисты известны тем, что ведут жаркие споры друг с другом о различных инструментах и технологиях, а также об их предпочтениях. Тем не менее, все они сходятся в одном: непротиворечивость кода жизненно важна.
Недостаток последнего вызывает неприятные неприятности в коллективе (и даже с самим собой), превращающие дни каждого в сущий ад.
Представьте себе это: человек А называет свои переменные с помощью styleA, человек B с styleB и так далее, и так далее.
Вы можете себе представить, как будет выглядеть кодовая база? Это были бы дикие джунгли, делающие удобочитаемость и ремонтопригодность чистой фантазией!
Для этой цели были созданы соглашения об именах и стили для универсального кода, который соответствует стандартам и, следовательно, менее подвержен ошибкам.
Что такое PEP8?
PEP8 — это руководство по стилю, содержащее соглашения для кода Python, которые помогают нам писать чистый код.
Это руководство по стилю обновляется по мере развития языка, добавления условных обозначений и удаления устаревших. Так что всегда нужно быть в тонусе.
Это официальная Документация по PEP8, и я настоятельно рекомендую вам время от времени просматривать ее.
Общие соглашения в Python
- Имена переменных не должны состоять из одной прописной буквы i, строчной L или прописной O.
- Имена переменных не должны начинаться с цифр или заглавной буквы.
- Все имена переменных должны быть в нижнем регистре.
- Длинные имена переменных должны быть разделены символом подчеркивания. Этот стиль называется snake-case и используется в Python.
Примеры названий классов: Fruit, Vegetable, CoolBeans…
- Все имена функций (кроме заводских) должны быть в нижнем регистре.
Примечание.фабричные функции — это функции, которые возвращают объекты, поэтому ведут себя как объявления классов.
- Имена функций класса и фабрики соответствуют соглашению об именах PascalCase (первая буква каждого слова заглавная).
Константы
В Python нет такой вещи, как константа, все, что вы объявляете, может быть впоследствии изменено и перезаписано. Вместо этого мы используем переменные, которые не изменяем (умно, я знаю).
Так как же нам отличить переменные от «констант»?
Мы пишем имена констант в snake-case и заглавными буквами:
А теперь переходим к подчеркиванию…
Примечание.символы подчеркивания между словами в имени переменной не имеют никакого значения!
Подчеркивания и модификаторы доступа
Символы подчеркивания в Python обсуждаются в рамках модификаторов доступа.
Модификаторов доступа (приватных и защищенных) на самом деле в Python не существует.
Итак, как мы инкапсулируем наши данные? Посмотрим:
Модификаторы защищенного доступа
Защищенные атрибуты/методы имеют префикс подчеркивания.
Доступ к защищенным членам класса возможен только из самого класса или из его подклассов.
Однако это не относится к Python; все защищенные члены Python являются общедоступными.
Заметь:
Модификаторы приватного доступа
Частные атрибуты/методы имеют префикс dunder (помните? Это двойное подчеркивание)
Доступ к закрытым членам класса возможен только внутри класса.
Интересно, как с этим справляется интерпретатор Python!
Так о чем ты говоришь? Это явно личное! Мы не могли получить к нему доступ вне класса!
Вот самое интересное!
Интерпретатор Python искажает имена таким образом, что создается впечатление, что член действительно является закрытым.
Давайте посмотрим на пространство имен (атрибуты и методы) объекта x
класса SomethingElse
с помощью метода dir()
:
Посмотрите на первый элемент списка!
Итак, в основном мы можем просто:
Мы только что получили доступ к частному члену вне класса.
Подчеркивания и ключевые слова
Если вы окажетесь в ситуации, когда вам нужно назвать свои переменные с помощью зарезервированного ключевого слова, соглашение гласит, что вы должны добавлять к имени префикс подчеркивания:
Да, кстати, если вы хотите просмотреть все ключевые слова Python:
Подчеркивания и магические методы
Магические методы — это причудливое название для специальных функций Python с фиксированным именем, которое по соглашению заключено в dunders.
Мы видели в предыдущем примере, что одним из них является __init__
.
Чтобы указать другие магические методы, у нас есть: __add__
, __str__
, __and__
…
Спасибо за чтение!
Вот оно! Надеюсь, вы узнали что-то новое и получили удовольствие от чтения!
Любые отзывы или конструктивная критика приветствуются и приветствуются, поэтому, пожалуйста, сообщите мне, что вы думаете в комментариях, чтобы я мог улучшить качество. Спасибо за прочтение ❤️
Подпишитесь на меня в Твиттере, чтобы узнать больше!
Удачи!