解决覆盖的方法?
Ways to resolve overriding?
如果我们继承 class 并且发生方法覆盖,则在 c++ 范围解析运算符中使用来解决该问题。 python有什么办法吗???这是一个示例代码:
class a:
def c(self):
print('base class')
class b(a):
def c(self):
print('derived class')
d=b()
d.c()
我在这里尝试使用对象 d 访问基础 class 的方法 c。怎么做到的???
好的,这是代码:
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,如下所示:
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
更新:
您可以通过其名称访问 base 的方法,方法是将 class 或其子 class 的实例发送到该方法:
Parrent.OverriddenMethod(object_of_child)
在你的例子中:
a.c(d)
如果我们继承 class 并且发生方法覆盖,则在 c++ 范围解析运算符中使用来解决该问题。 python有什么办法吗???这是一个示例代码:
class a:
def c(self):
print('base class')
class b(a):
def c(self):
print('derived class')
d=b()
d.c()
我在这里尝试使用对象 d 访问基础 class 的方法 c。怎么做到的???
好的,这是代码:
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,如下所示:
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
更新:
您可以通过其名称访问 base 的方法,方法是将 class 或其子 class 的实例发送到该方法:
Parrent.OverriddenMethod(object_of_child)
在你的例子中:
a.c(d)