#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. Классы для внутреннего использования дополнительно имеют начальный символ подчеркивания.
Смотрите, например
from configparser import ConfigParser
(который, кстати, был ConfigParser в Python 2.x, но изменен на нижний регистр в 3.x).
Комментарии:
1. Я не могу не заметить, что это описывает имена модулей и классов, но не упоминает имена файлов. Я полагаю, что вопрос касался обоих. Что такого в каждом отдельном руководстве по python и комментарии, которые я нахожу, что никто не упоминает, как НАЗЫВАТЬ ФАЙЛЫ !?!?!
2. @Scott Соглашение об именовании модуля — это ответ на ваш вопрос. Модуль — это, по сути, файл на Python, содержащий один или несколько классов и / или функций.
Ответ №2:
В PEP 8 говорится:
Модули должны иметь короткие имена в нижнем регистре. В имени модуля можно использовать символы подчеркивания, если это улучшает читаемость. Пакеты Python также должны иметь короткие имена в нижнем регистре, хотя использование подчеркиваний не рекомендуется.
Я также отмечу, что вы не обязательно должны иметь только один класс для каждого файла. Скорее вам следует включить связанные классы вместе в один файл. (Конечно, в некоторых случаях работает один класс для файла, но это не всегда так)
Комментарии:
1. Отличный момент! Хороший редактор, поддерживающий сворачивание кода, может помочь, если у кого-то возникают проблемы с отображением высокоуровневой картины, скажем, трех классов в одном файле.