Понимание того, что представляют символы подчеркивания в 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__

Спасибо за чтение!

Вот оно! Надеюсь, вы узнали что-то новое и получили удовольствие от чтения!

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

Подпишитесь на меня в Твиттере, чтобы узнать больше!

Удачи!