我有一堆分布在从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不知道其子类别?