[TASK] Python #1 (https://github.com/SENATOROVAI/python/issues/1)#505
Closed
nigmatullin244 wants to merge 39 commits intoSENATOROVAI:mainfrom
Closed
[TASK] Python #1 (https://github.com/SENATOROVAI/python/issues/1)#505nigmatullin244 wants to merge 39 commits intoSENATOROVAI:mainfrom
nigmatullin244 wants to merge 39 commits intoSENATOROVAI:mainfrom
Conversation
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
nigmatullin244
commented
Dec 20, 2025
Comment on lines
+1
to
+131
| """Глава 4. | ||
|
|
||
| Выбор понятных имен. | ||
| """ | ||
|
|
||
| # ### Схемы регистра имен | ||
| # | ||
| # Змеиный регистр (snake_case) - разделяет слова символом подчеркивания. Константы часто записываются | ||
| # в верхнем змеином регистре (UPPER_SNAKE_CASE). | ||
| # | ||
| # Верблюжий регистр (camelCase) — слова записываются в нижнем регистре, | ||
| # но второе и следующие слова начинаются с заглавной. | ||
| # | ||
| # Схема Pascal (PascalCase) — названа так, потому что применяется в языке | ||
| # программирования Pascal; аналогична схеме верблюжьего регистра, но первое | ||
| # слово в ней тоже начинается с заглавной. | ||
| # | ||
| # На практике чаще всего встречаются змеиный и верблюжий регистры. | ||
|
|
||
| # ### Соглашения об именах PEP 8 | ||
| # | ||
| # - Все буквы должны быть буквами ASCII — то есть латинскими буквами | ||
| # верхнего и нижнего регистров без диакритических знаков. | ||
| # | ||
| # - Имена модулей должны быть короткими и состоять только из букв нижнего | ||
| # регистра. | ||
| # | ||
| # - Имена классов необходимо записывать в схеме Pascal. | ||
| # | ||
| # - Имена констант следует записывать в верхнем змеином регистре. | ||
| # | ||
| # - Имена функций, методов и переменных записывают в нижнем змеином | ||
| # регистре. | ||
| # | ||
| # - Первый аргумент методов всегда должен называться self в нижнем регистре. | ||
| # | ||
| # - Первый аргумент методов классов всегда должен называться cls в нижнем | ||
| # регистре. | ||
| # | ||
| # - Приватные атрибуты классов всегда начинают с символа подчеркивания ( _ ). | ||
| # | ||
| # - Публичные атрибуты классов никогда не начинают с символа подчеркивания ( _ ). | ||
|
|
||
| # ### Длина имен | ||
| # | ||
| # Очевидно, имена не должны быть слишком короткими или слишком длинными. | ||
| # Но так как код читают чаще, чем пишут, лучше все-таки задавать более длинные имена переменных. | ||
| # | ||
| # 1. Слишком короткие имена: | ||
| # - Вы можете забыть их точный смысл через несколько дней или недель. | ||
| # | ||
| # - Сокращения и одно-двухбуквенные имена легко записать, но они плохо читаются. | ||
| # | ||
| # - Сокращенные имена вида mon — могут означать monitor, month, monster и множество других слов. | ||
| # | ||
| # - Имя из одного слова — например, start (начало) — может трактоваться поразному: начало чего? При отсутствии уточнения другие люди вас вряд ли | ||
| # поймут. | ||
| # | ||
| # - В отдельных случаях короткие имена переменных вполне допустимы. Например, имя i часто используется с переменными циклов for, перебирающих диапазоны чисел или индексов списка, а j и k (следующие за i в алфавитном порядке) используются с вложенными циклами. | ||
| # | ||
| # - Еще одно исключение — использование x и y для декартовых координат. | ||
| # | ||
| # | ||
| # 2. Слишком длинные имена: | ||
| # - Как правило, чем больше область видимости имени, тем более содержательным оно должно быть. | ||
| # | ||
| # - Лучше использовать более содержательное имя, например, salesClientMonthlyPayment или annual_electric_bill_payment. Дополнительные слова в имени уточняют смысл и устраняют неоднозначность. | ||
| # | ||
| # - Не пропускайте буквы в своем коде. | ||
| # | ||
| # - Кроме того, старайтесь использовать короткие фразы, с которыми ваш код читается как обычный текст. Например, имя number_of_trials читается лучше, чем number_trials. | ||
| # | ||
| # | ||
| # 3. Префиксы в именах: | ||
| # - Префиксы в именах иногда избыточны. Например, если у вас есть класс Cat с атрибутом weight, очевидно, что weight (вес) относится к кошке (cat). Таким образом, имя catWeight будет слишком подробным и длинным. | ||
| # | ||
| # - С другой стороны, префиксы is и has у переменных, содержащих логические значения, или функций и методов, возвращающих логические значения, делают эти имена более понятными. | ||
| # | ||
| # - Также включение единиц измерения в имена может предоставить полезную информацию. | ||
| # | ||
| # 4. Последовательные числовые суффиксы в именах: | ||
| # - Последовательные числовые суффиксы в именах указывают на то, что вам, возможно, стоит изменить тип данных переменной или включить дополнительную информацию в имя. | ||
| # | ||
| # - Числа сами по себе, как правило, не предоставляют достаточной информации, чтобы имена можно было отличить друг от друга. | ||
| # | ||
| # - Имена переменных вида payment1, payment2 и payment3 не сообщают читателю кода, чем они различаются. Возможно, программисту стоит преобразовать эти три переменные в один список или переменную-кортеж с именем payments, в которой хранятся три значения. | ||
| # | ||
|
|
||
| # ### Выбирайте имена, пригодные для поиска | ||
| # | ||
| # - Во всех программах, кроме самых коротких, вам, вероятно, придется воспользоваться редактором или функцией поиска (Ctrl-F) в IDE, чтобы найти упоминания переменных и функций. | ||
| # | ||
| # - Если вы будете выбирать короткие, обобщенные имена переменных (например, num или a), вы наверняка получите ряд ложных совпадений. | ||
| # | ||
| # - Чтобы имя было найдено немедленно, создавайте уникальные имена с более длинными именами переменных, которые содержат конкретную информацию. | ||
| # | ||
| # - Имя email слишком многозначно, поэтому лучше выбрать более содержательное имя: emailAddress, downloadEmailAttachment, emailMessage, replyToAddress и т. д. Такое имя не только более точное, но его проще найти в исходном коде. | ||
|
|
||
| # ### Избегайте шуток, каламбуров и культурных отсылок | ||
| # | ||
| # - При выборе имен в программе у вас может возникнуть соблазн использовать шутки, каламбуры или культурные отсылки, чтобы ваш код выглядел более непринужденно. Не делайте этого. | ||
| # | ||
| # - Лучше всего писать код, понятный тем, для кого английский язык не является родным, то есть прямолинейно, традиционно и без юмора. | ||
|
|
||
| # ### Не заменяйте встроенные имена | ||
| # | ||
| # - Никогда не используйте встроенные имена Python для своих переменных. Например, присвоив переменной имя list или set, вы заместите функции Python list() и set(), что позднее может привести к появлению ошибок. | ||
| # | ||
| # - Другая распространенная проблема — присваивание файлам .py имен, совпадающих с именами сторонних модулей. | ||
|
|
||
| # ### Худшие из возможных имен | ||
| # | ||
| # - Имя data — ужасное и абсолютно бессодержательное, потому что буквально любая переменная содержит данные (data). | ||
| # | ||
| # - То же можно сказать об имени var — все равно что выбрать для собаки кличку Собака. | ||
|
|
||
| # ### Итоги | ||
| # | ||
| # - Имена не должны быть слишком короткими или слишком длинными. | ||
| # | ||
| # - Однако часто лучше сделать имя избыточным, чем недостаточно содержательным. | ||
| # | ||
| # - Имя должно быть лаконичным, но информативным. | ||
| # | ||
| # - Оно должно легко находиться функцией поиска Ctrl-F. | ||
| # | ||
| # - Выбирайте имена прямолинейные, традиционные и без отсылок к хохмам. | ||
| # | ||
| # - Избегайте имен, уже используемых стандартной библиотекой Python | ||
| # | ||
| # - Использование понятных имен — основополагающий фактор разработки качественного программного обеспечения. |
Author
There was a problem hiding this comment.
Please do a review in python folder (clean-code, makarov, oop_molchanov.py)
https://www.kaggle.com/nigmatullinraushan/code - kaggle notebook
Member
ViktorVinogradov89
left a comment
There was a problem hiding this comment.
review done and closed
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Member
|
review done. Goode work |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes (https://github.com/SENATOROVAI/python/issues/1)