编辑:
感谢您提供有关类属性的信息。我了解这些类似于其他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
。但是,如果我希望使用基类构造函数设置值,正确的方法是什么?
答案 0 :(得分:2)
最简单,最好:只需在每个库中调用初始化器!
class Derv(Base1, Base2):
def __init__(self, x, y):
Base1.__init__(self, x)
Base2.__init__(self, y)