Подтвердить что ты не робот

Являются ли классы в Python в разных файлах?

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

4b9b3361

Ответ 1

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

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

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


Для соглашений об именах вы можете читать 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()

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

Ответ 2

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

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