BaseClass无法找到其子类

时间:2019-02-12 22:27:54

标签: python dynamic python-import base-class

我有一堆分布在从BaseFeature类继承的几个模块上的要素类。通过某种方式,BaseFeature无法通过调用subclasses()方法来知道其子类。

在另一个模块中,例如(pipeline.py)我只导入BaseFeature类。 然后,我在类对象而不是BaseFeature的实际对象上调用BaseFeature。 subclasses ()! 呼叫以某种方式不返回任何内容。但是当我另外将feature_x.py导入pipeline.py时,BaseFeature再次知道其子类。 由于动态模块导入,我想避免这种情况。

insidepipeline.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不知道其子类别?

0 个答案:

没有答案