Я рефакторинг части программного обеспечения Python 2. Код в настоящее время находится в одном файле, который содержит 45 или около того классов (и 2 строки за пределами класса для загрузки приложения).Python - лучший способ импорта модулей в сложное приложение?
Я хотел бы иметь один класс для каждого файла, в идеале файлы из связанных классов, сгруппированных в каталогах.
Я обычно хотел написать мой импорт Python как таковой:
from zoo.dog_classes.beagle_class import BeagleClass
from zoo.dog_classes.dalmatian_class import DalmatianClass
так, чтобы было понятно, какие модули импортируются в классе, и что их имя как можно короче.
Для этого программного обеспечения логика довольно сложна, хотя классы, относящиеся друг к другу обычно в методах класса, приводят к многочисленным циклическим импортам, что исключает этот подход.
Я не хочу импортировать модули в функции, так как это ужасно для удобочитаемости, и код везде повторяется.
Похоже, мой единственный вариант, чтобы писать импорт таким образом:
import zoo.dog_classes.beagle_class
, а позже, когда мне нужен класс:
b = zoo.dog_classes.beagle_class.BeagleClass()
Это, однако, чрезвычайно подробный и болезненный, чтобы писать.
Как я должен иметь дело с моим импортом?
Возможно, вам стоит подумать о том, чтобы избавиться от подхода «один класс на модуль». Во-первых, это неявно заставляет вас создавать более крупные классы вместо разделения функций (и при необходимости чистых функций). Во-вторых, вы не используете дополнительный модуль абстракции (что, вероятно, существенно снизит общий объем импорта). – fjarri
Классы действительно большие. Я знаю, что это далеко не идеальный вариант, но я хотел бы реорганизовать программное обеспечение с помощью нескольких шагов - первым из которых было бы разбиение его на отдельные файлы. – bitgarden