Правильное именование в python
В большинстве своем начинающие программисты не обращают внимание на правильные названия переменных, функций, классов ( я был один из них ), после чего сильно страдают в будущем, потому что после неправильного нейминга приходится долго и мучительно переучиваться, так как эта привычка очень сильно въедается в мозг. А я еще после +- 2-ух лет занятий прикладным программированием решил стать профи в спортивном программировании, что также негативно сказалось на написании правильного кода.
Для чего это нужно?
Довольно простой и понятный вопрос, но его все-таки нужно обсудить, чтобы понимать с какой целью мы будем тратить непомерное количество усилий для придумывания грамотного названия переменной. А целью нашего труда будут являться сэкономленные десятки, сотни ( зависит от масштабов проекта ) человеко-часов, которые будут потрачены на рефакторинг и переименование абсурдных переменных, функций и т.д.
Имя переменной, функции или класса должно отвечать на все главные вопросы. Оно должно сообщить, почему эта переменная существует, что она делает и как используется. Если имя требует дополнительных комментариев, значит, оно не передает намерений программиста. ©Роберт Мартин
Что нужно знать, чтобы правильно наименовать переменные?
Для правильного нейминга нужно изучить следующие вещи:
1. Английский, чтобы правильно интерпретировать значения объектов в python
2. Понять что на самом деле делает функция или класс ( чтобы это понять используйте уточку )
Соглашении об именовании
Перед тем, как перейти к описанию переменных, функций и классов по отдельности, нужно понять стиль кода в python:
Функции, переменные, методы - пишите название в нижнем регистре, если название состоит из более, чем 1-го слова, разделяйте нижним подчеркиванием.
pow_numbers(number_1, number_2), split_string = input().split()
Классы - первая буква - заглавная, остальные в нижнем регистре ( CamelCase ). Если класс состоит из более чем 1-го слова, то каждое последующее слово начинается с заглавной буквы
EmployeeData, AdminSettings
Константы - на константы распространяются те же правила, что и на переменные, только константы нужно называть, используя буквы в верхнем регистре.
CONSTANT, MY_CONSTANT, MY_LONG_CONSTANT
Исключения - Так как исключения являются классами => к исключениям применяется стиль именования классов. Однако вы можете добавить Error в конце имени
ForbiddenError, FoundError
Переменные
Имена переменных ни в коем случае не должны пересекаться с названиями модулей ( math, string ), операторов ( and or not ) и других зарезервированных слов python ( add, sum ).
Функции и методы
Функция должна содержать в своем названии какое-то действие ( add, remove, set ) и функция должна делать ровно одно действие, то есть если вам нужно проделать над одним объектом два или более действий и у вас получается в названии что-то такое: pow_and_divide_numbers, то его необходимо переписать на две функции pow и devide.
Классы
Названия классов нужно писать в ед.ч. Если получается так, что класс делает слишком много разных задач, то нужно сделать несколько классов и разбить эти задачи среди них.
UserEdit, UserDelete
Надеюсь было интересно и познавательно :)
Мои контакты:
Мой гитхаб с проектами - https://github.com/l-arkadiy-l
Мое портфолио - https://www.avito.ru/moskva/predlozheniya_uslug/repetitor_po_programmirovaniyu_python_2097917724
Картошка и ведро
Мне лет 12-13 и нас отправляют на картошку. Тогда всех отправляли в помощь колхозникам, не только учеников, но и аспирантов с инженерами.
Отработали мы день, сидим, ждём автобус. И тут одноклассник берёт моё пластиковое ведро, кидает вверх картофелину и пытается поймать её ведром. Я вскакиваю, пытаюсь ему помешать, отобрать ведро, кричу, что картофелина выбьет дно. Но он уворачивается, бегает от меня и раза с третьего ловит-таки картоху ведром. Естественно дно вышибает.
Я подхожу к его ведру, беру его, говорю, это теперь моё, взамен разбитого.
И вот тут, внезапно, нарисовывается наша классная. Обвиняет меня в том, что я отбираю ведро у одноклассника. Я объясняю ситуацию: он намеренно сломал моё ведро, я его предупреждал и я считаю справедливым получить взамен его, целое. А он пусть довольствуется результатами своей глупости.
И вот тут происходит то, за что дети ненавидят взрослых.
У неё появляются странные аргументы "он не нарочно", "он не знал" (а я предупреждал), "он просто играл", а ты "мелочный", "жадный", "поступаешь не по-товарищески".
Эта стерва ещё неоднократно настраивала класс против меня, раздувала возникшие конфликты с классом, потому что я "не такой как все". Да, в 70-80-е нужно было не выделяться, быть серой массой. А я часто с ней спорил, отстаивал своё мнение.
Один пример:
- Вы посмотрите, он хочет, чтоб я перед ним отчиталась за классные деньги!
- Не передо мной, а перед классом.
- Класс, вы мне доверяете?
- Мы... Му-у-у... Да...
- А вот он нет! Я отчитаюсь, непременно отчитаюсь!
Естественно, нет.
А потом заступники встречают меня после уроков.
Через год я перевёлся в другую школу. Друзья у меня из неё до сих пор. А в той больше не появлялся ни на одну встречу. Уж сколько лет прошло, но до сих пор её не простил. Хотел, пытался, но не смог.
P.S. я так и остался у разбитого корыта (ведра)
Съела сахарную вату за 3 секунды!
За 3 секунды, Карл!!! Теперь я видел всё!
Взрыв потенциальной энергии: звонок он для учителя
Прочел ответ @Khabkron #comment_219865874 вспомнил как у нас было.
Сидим на уроке, классная конкретно отчитывает за то, что мы 9-й класс, а все еще носимся как бешенные. А еще вылетаем из класса как только звонок прозвучит. Говорит: звонок он не для вас, он для учителя. Вот когда дам разрешение, тогда и можете идти.
Натерпелись ее наставлений... Звучит звонок.
Мы ждем. Через 3 секунды классная: можете идти.
Мы всем классом вылетаем с криком "ааааААААаа" в дверь ибо вода скоро начнет водить. Выносим дверь с петель, кто-то падает на дверь, давка... Через 5 секунд осознаем, что выбили закрытую на ключ вдерь (видать училка решила подстраховаться и закрыла дверь чтобы никто не выбежал полсе звонка, а открыть забыла).
Потом на собрании не знаю что было, но дверь починили.
Мой "Остров сокровищ"
Провел урок в пятом классе, распахнул двери, выпуская в прохладу коридоров детей. Входят технички, выгоняя остатки детворы и меня иже с ними. Влажная уборка, кварцевание. В просторном отсеке коридора у нас расположены стенды с художественной литературой. На полках практически все, что некогда согревало душу бывшего пионера.Рядом лакированный столик, несколько стульев. Все это расставлено в наивной надежде на то, что утомившиеся школьники будут почитывать на переменках . Мои пятиклассники давно умчались по своим делам. Большинство, конечно же, в буфет. За столиком вполне уныло скучают несколько интернетных бедолаг. Пробегаю глазами по книжным рядам.
- Заманчиво и роскошно!, - киваю на книги, - Я о таком собрании разве что мечтал, а для вас ноу проблем, как говорится.
Софочка недоуменно смотрит на меня.
- Мечтал о личной библиотеке подобного содержания!, - объясняю ей., - Здесь и Гайдар, и Жюль Верн, и чего только нет!
Дети стараются смотреть на солидные полки заинтересованно. Савелий для такого случая даже протер линзы очков.
- Если бы мне было десять-одиннадцать, я бы здесь в буквальном смысле слова ночевал, - покачал я головой, - Только представить себе : Думбадзе, Тихомиров, Симонов, Алесь Адамович ... А вот и моя любимая - "Остров сокровищ" Стивенсона!
Дети недоверчиво глядят на книжные ряды, а я возвращаюсь в кабинет. Спустя несколько минут влетает разгоряченная Софья, и не скрывая восхищения, с порога выдает:
- А Савелий книжку порвал! Аж надвое!
Я недоуменно смотрю на девочку. За ее спиной маячит поникшая фигура Савы. В глазах ребенка вся скорбь мировой истории.
- Савушка, ну что же ты так?!..
- Надвое!, - не унимается восторженная Софья, - Он пытался читать, а Мансур в этот момент его толкнул! Ну и вот результат!
Савелий убитым взглядом оглядывал свои преступные ладони. В глазах мальчишки стояли слезы. По моему, он был близок к обмороку. Действовать надо было решительно. Я почувствовал себя хирургом в полевых условиях.
- Книгу сюда! Вернее, то, что от нее осталось!, - скомандовал я решительно, - Клей, ножницы и Мансура!
Счастливая Софья пулей вылетела в коридор.
Пока я собирал и склеивал по частям картонное наследие советской эпохи, мальчишка, захлебываясь, обильно размазывая по щекам слезы, пытался объясниться.
- Да не плачь ты так!, - улыбнулся я , - Сейчас починим книжку и станет как новая.
- Как же глупо полу-получиииилось!, - не унимался пацан, - Я же только посмотреть!... Присел за столик ... А противный Мансур!... Ай-яй-яй!... Ну зачем он так, подлый?!... Взял и рванул меня за пиджаааак... А она возьми и - и ... порвааалась! И ведь, самое главное ... Это была ваша ... самая любимая кни-книиижка!...
И пацан заревел так горько, что я только сейчас сообразил, что держу в руках Стивенсона. Того самого. Ну а Савелий, добрая душа, скорее всего решил, что это и был тот самый экземпляр. Та самая книжка. Которую его учитель читал больше тридцати лет назад.