从 python 中的特定基 class 访问函数
Accessing function from specific base class in python
我在两个不同的 classes 中有两个同名的函数。并且这两个 classes 都继承到第三个 class。所以在我的第三个 class 中,我想访问特定 class 的功能。我该怎么做..
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
您可以将其显式调用为 OtherBase.display(self)
你得修改推导的顺序 类
作为 class Multi(OtherBase, Base)
有两种方式:
定义时更改继承顺序 Multi
:
Multi(OtherBase, Base)
显式调用那个class的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'
我在两个不同的 classes 中有两个同名的函数。并且这两个 classes 都继承到第三个 class。所以在我的第三个 class 中,我想访问特定 class 的功能。我该怎么做..
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
您可以将其显式调用为 OtherBase.display(self)
你得修改推导的顺序 类
作为 class Multi(OtherBase, Base)
有两种方式:
定义时更改继承顺序
Multi
:Multi(OtherBase, Base)
显式调用那个class的
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'