Python中的P>,请考虑我有以下代码:
类超类(对象):
定义初始化(self,x):
self.x=x
类子类(超类):
定义初始化(self,y):
self.y=y
#我如何在这里初始化超类?
如何初始化子类中的超类\uuuu init\uuuu?我正在学习Python教程,但它没有涵盖这一点。当我在谷歌上搜索时,我发现了不止一种方法。处理这个问题的标准方法是什么
Python(直到版本3)支持;旧式;和新式课程。新样式类是从object派生的,是您正在使用的,并通过super()调用它们的基类,例如
X类(对象):
定义初始化(self,x):
通过
def doit(自我,条形):
通过
Y类(X类):
定义初始化(自):
超级(Y,self).\uuuu初始(123)
def doit(self,foo):
返回super(Y,self).doit(foo)
因为python了解旧样式和新样式的类,所以有不同的方法来调用基方法,这就是为什么您发现了多种方法
为了完整性起见,旧式类使用基类显式地调用基类方法,即
def doit(self,foo):
返回X.doit(self,foo)
但既然你不应该再使用旧式了,我就不会太在意这个了
Python3只知道新样式的类(不管您是否从object派生)