即使我们没有传递任何参数,在子类中Super()的用途是什么

    class Base(object):
        def __init__(self):
           self.fname="MS"
           self.lname="Dhoni"
    
    class Child(Base):
       def __init__(self):
           self.fname="kohli"
           super(Base).__init__()

上面代码中 super 方法的用途是什么甚至评论super(Base).__init__()我正在获取输出kohli
请解释

回答

你打电话super(Base),这意味着父母Base班谁是object一流的,所以你不能调用Base.__init__方法,这意味着没有任何的重新分配fname,其停留于kohli


你想要的是Child类的父类,当前实例self

super(Child, self).__init__()

但实际上你可以只做以下,那是一样的

super().__init__()


以上是即使我们没有传递任何参数,在子类中Super()的用途是什么的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>