带有可变父类对象的Python类

时间:2018-08-11 20:52:23

标签: python class inheritance

很抱歉,我没有使用一般示例来解释我的问题。我知道这与机器学习无关,但是我试图写一个一般的例子,这更加令人困惑,所以我决定去做:我有两个父类,比方说

class MLP(object):
    def __init__(self, mlp_architecture):
        ...
    def forward(self):
        ...
class CNN(object):
    def __init__(self, cnn_architecture):
        ...
    def forward(self):
        ...

我说一个孩子班

class Classifier(Model):
    def __init__(self, num_epochs, 
                       learning_rate,
                       ...
                       model_architecture):
        super(Classifier, self).__init__(model_architecture)
    def train(self):
        ...
    def predict(self, x):
        ...

现在Classifier的方法可同时用于MLPCNN,并且它们需要一个forward方法。我希望Classifier能够从forwardMLP两者中继承CNN,而不必定义这样的两个子类

class ClassifierMLP(MLP):
    ...
class ClassifierCNN(CNN):
    ...

相反,我想做这样的事情(我知道我写的是错误的,但我希望你能理解)

clf = Classifier(MLP)(num_epochs=...,
                      learning_rate=...,
                      ...
                      model_architecture=...)
clf.train()

执行此操作的正确方法是什么?另外,如果您想知道“为什么要打扰”,ClassifierMLPCNN实际上有很多方法,并且我还有更多希望从Classifier继承的Parent类,所以我认为,如果我能够做到这一点,我的程序将会简单得多。预先感谢!

0 个答案:

没有答案