Правильный регистр и формат переменной и методы и для 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
Другие вопросы по тегам