繁体   English   中英

为什么我们需要在Django的override方法中调用当前类

[英]why do we need to call current class in override method in django

我是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) 如何调用祖父母方法?

看到这个答案

当您做super(MyStuff, self).__init__(*args, **kwargs)您正在调用“ parent”的实例方法

在python中,您具有多个继承关系,因此,当您调用super()时,方法解析顺序不仅限于一个父对象,因为您有多个父对象。 这里

希望有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM