我正在使用两个用于对数据进行建模/预测的类,并且希望使用一个可以预处理并调用这两个类的预测方法的函数。
下面是一个简化的示例:
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)
无论如何,可以从run_prediction调用预测方法,而无需在预测方法中创建未使用的None参数(用**表示)(由于使用其他模块,因此我无法在实际代码中执行此操作) ?
还是有比未使用的参数更好的解决方案?