Я использую в проекте такую структуру:

main.py - выполняется при старте приложения и просто импортирует основной класс программы Program из модуля program.py
В пакете Libs/programclass я держу классы, которые наследую в классе Program.
Пример архитектуры класса Program модуля program.py:
from Libs import programclass as program_class # классы программы
class Program(program_class.ShowScreens):
def __init__(self, **kvargs):
# Теперь мне доступны все атрибуты и методы класса ShowScreens.
super(Program, self).__init__(**kvargs)
self.attribute_class_program = True
Код файла __init__.py из пакета Libs/programmclass:
from .ShowScreens import ShowScreens
Пример архитектуры класса ShowScreens модуля ShowScreens.py из пакета Libs/programmclass:
class ShowScreens(object):
# Здесь мне доступны все атрибуты и методы класса Program,
# которые упомянуты в его конструкторе через ключевое слово self.
print self.attribute_class_program
Вопрос: насколько корректен такой подход?