从 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)

有两种方式:

  1. 定义时更改继承顺序 Multi:

    Multi(OtherBase, Base)
    
  2. 显式调用那个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'