在具有多个基类的类中继承属性的问题

时间:2018-10-24 00:47:22

标签: python multiple-inheritance

编辑: 感谢您提供有关类属性的信息。我了解这些类似于其他OO语言中的static。现在,在下面的代码中,我希望使用基类的mode在派生类中设置__init__x。任何指导将不胜感激。

y

OLD:

Multiple inheritance: The derived class gets attributes from one base class only?

有关

现在,在以下示例中发生了什么(d的字典为空):

class Base1:
  def __init__(self, x):
      self.x = x

class Base2:
  def __init__(self, y):
      self.y = y

class Derv (Base1, Base2):
  def __init__(self, x, y):
      self.x = x
      self.y = y

尽管这在我们将代码更改为以下代码时有效:

class Base1:
  x = 10

class Base2:
  y = 10

class Derv (Base1, Base2):
  pass


d=Derv()
print (d.__dict__)

我认为这更多是因为在class Base1: x = 0 def __init__(self, x): self.x = x class Base2: y = 0 def __init__(self, y): self.y = y class Derv (Base1, Base2): def __init__(self, x, y): self.x = x self.y = y 的{​​{1}}方法中定义了x and y。但是,如果我希望使用基类构造函数设置值,正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

最简单,最好:只需在每个库中调用初始化器!

class Derv(Base1, Base2):
    def __init__(self, x, y):
        Base1.__init__(self, x)
        Base2.__init__(self, y)