Иерархия классов Python с вложенным расположением - имеет ли смысл?

Я столкнулся с некоторыми странными ошибками и просто задаюсь
вопросом, есть ли у меня фундаментальная проблема в моей иерархии
классов. Я абсолютно новичок, если дело доходит до python. Так что,
если этот подход выглядит как полный дерьмо - вы знаете, почему это
:-)

У меня есть несколько классов в приложении, которое я создал
вокруг шаблона MVC. Контроллер приложений управляет четырьмя
объектами, которые я называю «устройствами», поскольку они
действуют как независимые устройства. В этом случае каждое
устройство запускает действия (вычисления), обработку изображений.
Эти действия предназначены для запуска внутри отдельных потоков.
Поэтому каждое устройство должно открыть «собственный» поток и
выполнить его вычисления в этом потоке.

Для этого я разработал базовый класс, описывающий «устройство»,
поэтому все устройства наследуют их базовую настройку и логику,
особенно то, как они контролируются контроллером. Для потоков я
реализовал класс «worker», я планирую нажимать экземпляры классов в
потоки. Эта часть еще не работает. Эти рабочие классы создаются
следующим образом: класс базового устройства содержит базовый класс
вложенного рабочего класса. Он также реализует некоторые базовые
методы управления для обработки экземпляра рабочего, который
хранится как член класса базового устройства. Все
специализированные классы устройств (производные от класса базового
устройства) также реализуют вложенный рабочий класс. Эти классы
производятся от базового рабочего класса, вложенного в класс
базового устройства. Вот эскиз иерархии:

```
/class Device/
             /methods
             /members
             /class Worker/
                          /methods
                          /members
/class fooDevice(Device)/
                        /methods
                        /members
                        /class fooWorker(Device.Worker)/
                                                       /methods
                                                       /members
/class barDevice(Device)/
                        /methods
                        /members
                        /class barWorker(Device.Worker)/
                                                       /methods
                                                       /members

```

Обратите внимание, что классы `fooWorker` и
`barWorker` являются производными от
`Device.Worker` !

Мой вопрос: хотя материал, похоже, работает во время установки,
я получаю ошибки времени выполнения. пока не уверены, откуда они
взялись, что они означают. Но сначала я хочу понять, что макет
иерархии классов, который я составил, имеет смысл вообще? Это
полностью искривленная ерунда? Или широко используется?

Благодаря!

Вложенные классы могут иметь смысл. Django использует их для
конфигурации Meta в моделях и формах. Я иногда использую их в
заводских шаблонах, например.

```
   class BaseFactory(object):
      class FactoryItem(object):
          pass 

      @classmethod
      def create(cls):
          return cls.FactoryItem()

   class ShoeFactory(BaseFactory):
      class FactoryItem(BaseFactory.FactoryItem):
          def laces(self):
              return 1

```

Но вы можете так же легко определить классы FactoryItem
глобально и назначить их члену класса «FactoryItem», например.

```
class Shoe(BaseFactory.FactoryItem):
    ...

class ShoeFactory(BaseFactory):
    FactoryItem = Shoe

```

Единственная проблема, с которой я столкнулся, - десериализация
объектов. Я не могу вспомнить, когда/где/почему, возможно,
маринован был где-то использован, и он не смог разрешить вложенный
класс.

Какие конкретные проблемы времени выполнения вы испытываете?



Вложенные классы могут иметь смысл. Django использует их для
конфигурации Meta в моделях и формах. Я иногда использую их в
заводских шаблонах, например.

```
   class BaseFactory(object):
      class FactoryItem(object):
          pass 

      @classmethod
      def create(cls):
          return cls.FactoryItem()

   class ShoeFactory(BaseFactory):
      class FactoryItem(BaseFactory.FactoryItem):
          def laces(self):
              return 1

```

Но вы можете так же легко определить классы FactoryItem
глобально и назначить их члену класса «FactoryItem», например.

```
class Shoe(BaseFactory.FactoryItem):
    ...

class ShoeFactory(BaseFactory):
    FactoryItem = Shoe

```

Единственная проблема, с которой я столкнулся, - десериализация
объектов. Я не могу вспомнить, когда/где/почему, возможно,
маринован был где-то использован, и он не смог разрешить вложенный
класс.

Какие конкретные проблемы времени выполнения вы испытываете?



Вложенные классы могут иметь смысл. Django использует их для
конфигурации Meta в моделях и формах. Я иногда использую их в
заводских шаблонах, например.

```
   class BaseFactory(object):
      class FactoryItem(object):
          pass 

      @classmethod
      def create(cls):
          return cls.FactoryItem()

   class ShoeFactory(BaseFactory):
      class FactoryItem(BaseFactory.FactoryItem):
          def laces(self):
              return 1

```

Но вы можете так же легко определить классы FactoryItem
глобально и назначить их члену класса «FactoryItem», например.

```
class Shoe(BaseFactory.FactoryItem):
    ...

class ShoeFactory(BaseFactory):
    FactoryItem = Shoe

```

Единственная проблема, с которой я столкнулся, - десериализация
объектов. Я не могу вспомнить, когда/где/почему, возможно,
маринован был где-то использован, и он не смог разрешить вложенный
класс.

Какие конкретные проблемы времени выполнения вы испытываете?