给出以下类声明:
class FactorizationModel(ModelWrapper, Saveable, Loader):
其中 ModelWrapper ,可保存和 Loader 是 FactorizationModel 的其他基类
此类没有定义任何__init__方法。相反,它有一些def,包括
def predict(self, user, product):
def predictAll(self, user_product):
def userFeatures(self):
def productFeatures(self):
鉴于没有 init 方法:请解释下面的构造函数调用中发生的情况。
从导入此类的一些客户端代码:
return FactorizationModel(model)
更新确定此处的第一个答案是正确的。添加相关信息以明确说明:
class ModelWrapper(object):
# the following base class constructor is getting called implicitly..
def __init__(self, model):
...
答案 0 :(得分:0)
初始化程序继承自父类,问题已解决。它在多重继承中搞砸了,如果存在冲突,它将只使用第一个传递的超类。例如:
class C(A, B): # initializer from A will be used
class C(B, A): # initializer from B will be used
答案 1 :(得分:0)
Python中的所有类都继承自一个名为Object的基类,它将该类分配到内存中(现在它被称为Object;类的一个实例。)因此那些没有初始化程序的类调用了基类初始值设定项