我在两个不同的类中有两个具有相同名称的函数。这两个类都继承到第三个类。所以在我的第三课我想要访问特定类的功能。我该怎么办..
class Base(object):
def display(self):
return "displaying from Base class"
class OtherBase(object):
def display(self):
return "displaying from Other Base class"
class Multi(Base, OtherBase):
def exhibit(self):
return self.display() # i want the display function of OtherBase
答案 0 :(得分:1)
您可以将其明确称为OtherBase.display(self)
答案 1 :(得分:1)
您必须修改派生类的顺序
作为class Multi(OtherBase, Base)
答案 2 :(得分:1)
有两种方法:
定义Multi
:
Multi(OtherBase, Base)
明确调用该类的display
方法:
xxxxx.display(self)
对于您的特定用例,我建议第二个。您可以利用默认参数并根据函数的调用方式更改函数的行为。
class Multi(Base, OtherBase):
def exhibit(self, other_base=False):
if other_base:
return OtherBase.display(self)
return Base.display(self)
minx = Multi()
print minx.exhibit()
'displaying from Base class'
print minx.exhibit(other_base=True)
'displaying from Other Base class'