Правильный регистр и формат переменной и методы и для Python
Так что я знаю, что некоторые языки ожидают соглашений.
PHP - underscore_case()
[по большей части, Лоло]
Джава - camelCase()
C# - PascalCase()
и т.п.
Что такое "Pythonic" соглашение об именах? Я знаю, что в конце концов это не имеет значения, но мне просто интересно, есть ли способ "лучшей практики", в котором делается большинство модулей.
3 ответа
Два слова: ПКП 8.
PEP 8 - это (де-факто) руководство по стилю Python. Некоторые основные моменты из этого документа (я специально упустил некоторые вещи; прочитайте оригинал документа для входов и выходов):
Имена пакетов и модулей: строчные имена. Подчеркивания могут использоваться в имени модуля, если это улучшает читаемость.
Имена классов: почти все без исключения имена классов используют соглашение CapWords. *
Имена глобальных переменных. Соглашения примерно такие же, как и для функций.
Имена функций: имена функций должны быть строчными, слова должны быть разделены подчеркиванием, чтобы улучшить читаемость. mixedCase допускается только в тех случаях, когда это уже преобладающий стиль (например,
threading.py
), чтобы сохранить обратную совместимость.Имена методов и переменные экземпляра: строчные буквы со словами, разделенными символами подчеркивания, необходимыми для улучшения читабельности. Используйте одно начальное подчеркивание только для закрытых методов и переменных экземпляра.
Константы: написаны прописными буквами с подчеркиванием, разделяющим слова. Примеры включают.
Прочитайте PEP 8.
Это руководство по стилю для кода Python, написанное его создателем Гвидо ван Россумом.
Кстати, ответ на ваш вопрос заключается в использовании underscore_case
для переменных и имен функций, и PascalCase
для занятий.
Семь слов: Google Summer of Code Python Руководство по стилю
Обратите внимание, что некоторые соглашения об именах отличаются от PEP8 и вместо этого следуют исходному руководству по стилю Google Python, из которого было создано это руководство по стилю.
- "Внутренний" означает внутренний для модуля или защищенный или частный в классе. Добавление одного подчеркивания (_) имеет некоторую поддержку для защиты переменных и функций модуля (не входит в import * from).
- Добавление двойного подчеркивания (__) к переменной или методу экземпляра эффективно делает переменную или метод приватными для своего класса (используя искажение имени).
- Поместите связанные классы и функции верхнего уровня вместе в модуле. В отличие от Java, нет необходимости ограничивать себя одним классом на модуль. Однако убедитесь, что классы и функции верхнего уровня в одном и том же модуле имеют высокую степень согласованности.
- Используйте CapWords для имен классов, но lower_with_under.py для имен модулей.
Примеры именования
- Пакеты:
lower_with_under
- Модули:
lower_with_under
,_lower_with_under
- Классы:
CapWords,
_CapWords
- Исключения:
CapWords
- Функции:
firstLowerCapWords()
,_firstLowerCapWords()
- Глобальные / классовые константы:
CAPS_WITH_UNDER
,_CAPS_WITH_UNDER
- Глобальные / классовые переменные:
lower_with_under
,_lower_with_under
- Переменные экземпляра:
lower_with_under
,_lower_with_under
(защищенный) или__lower_with_under
(частный)- Имена методов:
firstLowerCapWords()
,_firstLowerCapWords()
(защищенный) или__firstLowerCapWords()
(частный)- Параметры функции / метода:
lower_with_under
- Локальные переменные:
lower_with_under