我是Django的新手。我只是从c ++移动。当我想要覆盖类方法时,我有一个问题。为什么我们需要调用当前的类名?例如
class MyStuff( models.Model ):
def __init__(self, *args, **kwargs):
super(MyStuff, self).__init__(*args, **kwargs) #calling super "MyStuff" instead of "Model"
我不确定Django是如何深入内部工作的。我们为什么不拨打super(Model, self)
?我怎么称祖父母方法?
答案 0 :(得分:0)
请参阅this answer
执行super(MyStuff, self).__init__(*args, **kwargs)
时,您正在调用'parent'的实例方法
在python中,你有多个inherance,所以当你调用super()时,方法解析顺序不仅仅是一个父级,因为你有多个父级。 见here
希望帮助