Python - структура приложения

Утро,

У меня есть приложение на Python, над которым я работаю.

В настоящее время он состоит из пары файлов, но по мере его увеличения я создаю все больше и больше файлов и верхнюю часть моего основного файла Python, который я делаю

import url_thread
import task_database
import xxxx
import yyyy

и я собираюсь добавить еще один класс сегодня, который является еще одним импорт!

Есть ли способ вставить эти файлы в папку, и просто сделать классы импорта /*

Есть ли лучший способ, которым я должен делать это?

Больше, питон?

3 ответа

Да, вы можете делать то, что вы просите, но это не рекомендуется.

Вы можете создать пакет, содержащий все ваши модули, а затем загрязнить пространство имен, просто импортировав все:

from foo import *

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

Вы можете сделать пакет и импортировать из него: from mypackage import *,

Не слушайте все, что люди говорят о "загрязнении пространства имен". Давай и делай from classes import *, если это удобно для вас (и я верю, что это так), но подумайте об использовании __all__ в вашей упаковке.

Чтобы быть точным, следующая структура папок будет делать это:

classes/
|-- class1.py
|-- class2.py
`-- __init__.py

Добавление файла classes/__init__.py создает пакет. Это выглядит так:

from class1 import Class1
from class2 import Class2

__all__ = ["Class1", "Class2"]

Обратите внимание на кавычки вокруг имен классов в __all__,

Затем вы можете использовать пакет в любых ваших скриптах:

>>> from classes import *
>>> Class1
<class classes.class1.Class1 at 0xb781c68c>
>>> Class2
<class classes.class2.Class2 at 0xb781c6ec>
>>> dir()
['Class1', 'Class2', '__builtins__', '__doc__', '__name__', '__package__']

Легко и приятно.

Другие вопросы по тегам