Связь между присвоением имен классам и их файлам в python (соглашение?)

#python #naming-conventions #filenames #classname

#python #соглашения об именовании #имена файлов #classname

Вопрос:

В python (и некоторых других языках) Я узнал, что имя класса должно быть написано маленькими буквами, за исключением первой буквы каждого слова, которая должна быть заглавной. Пример:

 class FooBar:
    ...
  

Класс должен находиться в файле с тем же именем, что и класс. В этом примере это был бы файл foobar.py . Если я хочу foo куда-нибудь импортировать класс, я должен сделать это:

 from foobar import FooBar
  

Это соглашение меня немного смущает. Моя интуиция подсказывает мне, что если имя файла указывает на класс, то оно также должно быть написано с первой буквы заглавными буквами, например FooBar.py . Это не выглядит красиво в именах файлов. Возможно, кто-нибудь мог бы сказать мне, каково стандартное соглашение для этого?

Надеюсь, я сделал свой вопрос понятным. 🙂

Ответ №1:

То, что вы представили, является стандартным соглашением.

Имена пакетов и модулей

Модули должны иметь короткие имена в нижнем регистре. В имени модуля можно использовать символы подчеркивания, если это улучшает читаемость. Пакеты Python также должны иметь короткие имена в нижнем регистре, хотя использование подчеркиваний не рекомендуется.

Поскольку имена модулей сопоставляются с именами файлов, а некоторые файловые системы не чувствительны к регистру и усекают длинные имена, важно, чтобы имена модулей были выбраны достаточно короткими — это не будет проблемой в Unix, но может возникнуть проблема при переносе кода на более старые версии Mac или Windows, или DOS.

Когда модуль расширения, написанный на C или C , имеет сопутствующий модуль Python, который обеспечивает интерфейс более высокого уровня (например, более объектно-ориентированный), модуль C / C имеет начальное подчеркивание (например, _socket ).).

Имена классов

Почти без исключения имена классов используют соглашение CapWords. Классы для внутреннего использования дополнительно имеют начальный символ подчеркивания.

(Руководство по стилю Python)


Смотрите, например

 from configparser import ConfigParser
  

(который, кстати, был ConfigParser в Python 2.x, но изменен на нижний регистр в 3.x).

Комментарии:

1. Я не могу не заметить, что это описывает имена модулей и классов, но не упоминает имена файлов. Я полагаю, что вопрос касался обоих. Что такого в каждом отдельном руководстве по python и комментарии, которые я нахожу, что никто не упоминает, как НАЗЫВАТЬ ФАЙЛЫ !?!?!

2. @Scott Соглашение об именовании модуля — это ответ на ваш вопрос. Модуль — это, по сути, файл на Python, содержащий один или несколько классов и / или функций.

Ответ №2:

В PEP 8 говорится:

Модули должны иметь короткие имена в нижнем регистре. В имени модуля можно использовать символы подчеркивания, если это улучшает читаемость. Пакеты Python также должны иметь короткие имена в нижнем регистре, хотя использование подчеркиваний не рекомендуется.

Я также отмечу, что вы не обязательно должны иметь только один класс для каждого файла. Скорее вам следует включить связанные классы вместе в один файл. (Конечно, в некоторых случаях работает один класс для файла, но это не всегда так)

Комментарии:

1. Отличный момент! Хороший редактор, поддерживающий сворачивание кода, может помочь, если у кого-то возникают проблемы с отображением высокоуровневой картины, скажем, трех классов в одном файле.