У меня есть модуль, целью которого является определение класса "nib". (и несколько связанных классов тоже.) Как я могу назвать сам модуль? "СИБ"? "Nibmodule"? Что-нибудь еще?
Соглашения об именах Python для модулей
Ответ 1
Просто кив. Назовите класс Nib с капиталом N. Дополнительные сведения о соглашениях об именах и других советах по стилю см. В PEP 8, руководство по стилю Python.
Ответ 2
Я бы назвал его nib.py. И я бы также назвал класс Nib.
В более крупном проекте python, над которым я работаю, у нас есть много модулей, определяющих в основном один важный класс. Классы называются начиная с прописной буквы. Модули называются классом в нижнем регистре. Это приводит к следующим видам импорта:
from nib import Nib
from foo import Foo
from spam.eggs import Eggs, FriedEggs
Это немного похоже на эмуляцию Java-способа. Один класс для каждого файла. Но с добавленной гибкостью вы всегда можете добавить еще один класс в один файл, если это имеет смысл.
Ответ 3
Я знаю, что мое решение не очень популярно с точки зрения pythonic, но я предпочитаю использовать подход Java одного модуля → один класс с модулем, называемым классом. Я понимаю причину стиля python, но я не слишком люблю иметь очень большой файл, содержащий много классов. Мне трудно просматривать, несмотря на складывание.
Другая причина - контроль версий: наличие большого файла означает, что ваши фиксации имеют тенденцию концентрироваться на этом файле. Это может потенциально привести к большему количеству конфликтов, которые будут разрешены. Вы также теряете дополнительную информацию о журнале, которую ваша фиксация модифицирует определенные файлы (поэтому включает определенные классы). Вместо этого вы видите модификацию файла модуля, и только комментарий коммита должен понять, какая модификация была выполнена.
Подводя итоги, если вы предпочитаете философию python, пойдите для предложений других сообщений. Если вы предпочитаете java-подобную философию, создайте Nib.py, содержащий класс Nib.
Ответ 4
nib отлично. Если есть сомнения, обратитесь к руководству по стилю Python.
От PEP 8:
Имена пакетов и модулей Модули должны иметь короткие имена с прописными буквами. Подчеркивания могут использоваться в имени модуля, если он улучшает читаемость. Пакеты Python должны также имеют короткие имена с прописными буквами, хотя использование подчеркиваний не рекомендуется.
Поскольку имена модулей сопоставляются с именами файлов, а некоторые файловые системы нечувствительность к регистру и усечение длинных имен, важно, чтобы модуль имена будут выбраны достаточно короткими - это не будет проблемой для Unix, но это может быть проблемой, когда код переносится на старый Mac или Версии Windows или DOS.
Когда модуль расширения, написанный на C или С++, имеет сопутствующий Python модуль, который обеспечивает более высокий уровень (например, более объектно-ориентированный) интерфейс, модуль C/С++ имеет лидирующий символ подчеркивания (например, _socket).
Ответ 5
С PEP-8: имена пакетов и модулей:
Модули должны иметь короткие, строчные имена. Подчеркивание может быть используется в имени модуля, если это улучшает читаемость.
Пакеты Python также должны иметь короткие, строчные имена, хотя использование подчеркивание не рекомендуется.
Когда модуль расширения, написанный на C или C++, имеет сопровождающий Модуль Python, обеспечивающий более высокий уровень (например, более объектно-ориентированный) Интерфейс, модуль C/C++ имеет начальное подчеркивание (например, _socket).
Ответ 6
foo модуль в python будет эквивалентен файлу класса Foo в Java
или
foobar модуль в python будет эквивалентен файлу класса FooBar в Java