Классы в Python в разных файлах?

подобно Java (или php), я использую для разделения классов на файлы.
Это то же самое в Python? кроме того, как я должен назвать файл?
Строчные нравится classname.py или же как ClassName.py?
Нужно ли мне делать что-то особенное, если я хочу создать объект из этого класса или тот факт, что он находится в том же "проекте" (netbeans), позволяет создать объект из него?

2 ответов


в Python, один файл называется модуль. Модуль может состоять из несколько классы или функции.

как Python не только язык OO, это не имеет смысла, есть правило, которое говорит, что один файл должен содержать только один класс.

один файл (модуль) должна содержать классы / функции, которые принадлежат друг другу, т. е. обеспечивают аналогичную функциональность или зависят друг от друга.
Конечно, вы должны не преувеличивайте. Читаемость действительно страдает, если ваш модуль состоит из слишком много классов или функций. Тогда, вероятно, пришло время перегруппировать функциональность в разные модули и создать пакетов.


для соглашений об именах вы можете прочитать PEP 8 но в кратце:

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

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

и

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

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

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


чтобы создать экземпляр объекта, необходимо импортировать класс в файл. Е. Г

>>> from mymodule import MyClass
>>> obj = MyClass()

или

>>> import mymodule
>>> obj = mymodule.MyClass()

или

>>> from mypackage.mymodule import MyClass
>>> obj = MyClass()

вы спрашиваете основные основные вещи, поэтому я рекомендую прочитать учебник.


нет, вы можете определить несколько классов (и функции, и т. д.) в одном файле. Файл также называется модулем.

чтобы использовать классы / функции, определенные в модуле / файле, вам нужно будет import файл/модуль.