BaseClass не может найти свои подклассы - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть куча классов объектов, распределенных по нескольким модулям, все они наследуются от класса BaseFeature.Каким-то образом BaseFeature не может узнать свои подклассы, вызвав метод subclasses ().

В другом модуле, например (pipe.py), я импортирую только класс BaseFeature.Затем я вызываю BaseFeature. подклассы () для объекта класса, а не фактического объекта BaseFeature!Почему-то звонок ничего не возвращает.Но когда я дополнительно импортирую feature_x.py в pipe.py, BaseFeature снова знает свои подклассы.Я хочу избежать этого из-за динамического импорта модуля.

внутри pipe.py:

from base_feature import BaseFeature

class Pipeline:

    def init_features:
        feature_classes_list = BaseFeature.__subclasses__()
        print(feature_classes_list)

        # loop for init features in feature_classes_list

[] - пустой список

Но:

import feature_x
import feature_y

затем повторите инициацию объекта, BaseFeature снова «знает» его подклассы.

[<class feature_x>, <class feature_y>] 

Я хочу избежать импорта отдельного модуля объекта, потому что их много.И не все нужны каждый раз.Так почему же BaseClass не знает своих подклассов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...