如果我们继承一个类,并且发生方法的重写,则在c ++范围解析运算符中用于解决该问题。 python中有什么办法吗?这是一个示例代码:
class a:
def c(self):
print('base class')
class b(a):
def c(self):
print('derived class')
d=b()
d.c()
在这里,我尝试使用对象d访问基类的方法c。怎么做??
答案 0 :(得分:0)
好,这是代码:
class a:
def c(self):
print('base class')
class b(a):
def c(self):
print('derived class')
d=b()
super(b, d).c() # <<--- inline access to super(base) c method
如果您正在寻找更好的方法,可以将此方法添加到子类中,如下所示:
class a:
def c(self):
print('base class')
class b(a):
def c(self):
print('derived class')
def c_base(self): # <-- built in access to super(base) c method
super().c()
d=b()
b.c_base() # <<--- call the method
您可以通过将基类的实例或其子类发送到该方法来通过基名称访问该方法:
Parrent.OverriddenMethod(object_of_child)
在您的示例中:
a.c(d)