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

感谢有关类属性的信息。我知道这些类似于其他 OO 语言中的静态。现在在下面的代码中,我希望在派生类中使用__init__基类来设置x和y。任何指导将不胜感激。


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

老的:


与多重继承相关:派生类仅从一个基类获取属性?


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


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

我觉得这是比较确定的,因为x and y在__init__的方法Derv。但是,如果我希望使用基类构造函数设置值,正确的方法是什么?


波斯汪
浏览 133回答 1
1回答

catspeake

最简单也是最好的:只需调用每个基类中的初始化程序即可!class Derv(Base1, Base2):     def __init__(self, x, y):         Base1.__init__(self, x)         Base2.__init__(self, y)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python