Python 为什么我们不需要在super()中包含self?

Python 为什么我们不需要在super()中包含self?,python,python-3.x,initialization,super,Python,Python 3.x,Initialization,Super,为什么在super()关键字中,我们可以省略self? 如果我们不忽略它呢 A类: 定义初始化(self,var1,var2): """ 一些代码 """ B(A)类: 定义初始化(self、varA、varB): super().\uuuu init\uuuu(varA,varB) """ 一些代码 """ 在Python3中,super(Square,self)调用相当于无参数super()调用。第一个参数是指Square子类,而第二个参数是指Square对象,在本例中,它是self。您也

为什么在
super()
关键字中,我们可以省略
self
? 如果我们不忽略它呢

A类:
定义初始化(self,var1,var2):
"""
一些代码
"""
B(A)类:
定义初始化(self、varA、varB):
super().\uuuu init\uuuu(varA,varB)
"""
一些代码
"""
在Python3中,super(Square,self)调用相当于无参数super()调用。第一个参数是指Square子类,而第二个参数是指Square对象,在本例中,它是self。您也可以使用其他类调用super():

class Cube(Square):
def surface_area(self):
    face_area = super(Square, self).area()
    return face_area * 6

def volume(self):
    face_area = super(Square, self).area()
    return face_area * self.length

类似的问题,答案很糟糕:可能重复
class Cube(Square):
def surface_area(self):
    face_area = super(Square, self).area()
    return face_area * 6

def volume(self):
    face_area = super(Square, self).area()
    return face_area * self.length