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

Wan*_*123 0 python 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__()

Run Code Online (Sandbox Code Playgroud)

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

azr*_*zro 6

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


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

super(Child, self).__init__()
Run Code Online (Sandbox Code Playgroud)

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

super().__init__()
Run Code Online (Sandbox Code Playgroud)