Python - überschriebenen Methoden mit verschiedenen Argumenten aufrufen

stimmen
0

Ich arbeite mit zwei Klassen, die / werden verwendet, um Modelldaten vorhersagen und wollen eine Funktion verwenden, die Vorverarbeitung und rufen Sie die vorhersagen Methode der beiden Klassen.

Im Folgenden ist ein vereinfachtes Beispiel:

class Model(object):

    def __init__(self, mean):
        self.mean = mean

    def predict():
        pass

class Arithmetic(Model):

    def predict(self, n, factor, **alpha=None, beta=None**):
        return [self.mean + factor*x for x in range(n)]

class TwoStep(Model):

    def predict(self, n, alpha, beta, **factor=None**):
        return [self.mean + alpha*int((x+1)/2) + beta*int(x/2) for x in range(n)]

def run_prediction(data, n, PredictionModel, alpha=None, beta=None, factor=None):
    
    model processing    
    

    model = PredictionModel(data)
    result = model.predict(n, alpha=alpha, beta=beta, factor=factor)
    print(result)

run_prediction(3, 8, Arithmetic, factor=2)
run_prediction(3, 8, TwoStep, alpha=3, beta=1)

Gibt es trotzdem, das Verfahren von run_prediction vorhersagen zu rufen, ohne ungenutzt Keine Parameter zu schaffen (angegeben mit **) in den vorhersagen Methoden (Ich werde dies nicht in dem eigentlichen Code in der Lage zu tun, da ich andere Module bin mit)?

Oder gibt es eine andere Lösung, die bessere Praxis als nicht verwendeten Parameter sein würde?

Veröffentlicht am 27/11/2018 um 17:44
quelle vom benutzer
In anderen Sprachen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more