2

使用带有新类样式的python 2.7,如果我的类继承自Object类,那么行为是super(ClassName, self).__init__()什么?我的意思是,幕后发生了什么?如果我省略它有什么区别?

上面的一个例子:

  class ClassName(object):
    """docstring for ClassName"""
    def __init__(self, arg):
        super(ClassName, self).__init__() ## The question above is about this super
        self.arg = arg


  class OtherClass(ClassName):
    """docstring for OtherClass"""
    def __init__(self, arg, otherArg):
        super(OtherClass, self).__init__(arg) ## The question below is about this super
        self.otherArg = otherArg

如果我省略了super,幕后会发生什么?

谢谢。

4

1 回答 1

1

在单继承的情况下,绝对没有。object.__init__()蹲下。

多重继承的情况下,不会调用整个初始化链。这对您的应用程序的影响各不相同,但这通常不是一件好事。

于 2016-04-03T13:36:08.630 回答