【发布时间】:2014-06-15 21:30:45
【问题描述】:
class FakeBase(object):
def __init__(self, *args):
pass
class Parent(FakeBase):
def __init__(self, x=1, *args):
super().__init__(x, *args)
self.var1 = x
class Parent2(FakeBase):
def __init__(self, x=3, y=4, *args):
super().__init__(x, y, *args)
self.var2 = x
self.var3 = y
class Child(Parent, Parent2):
def __init__(self, z, *args):
super().__init__(*args)
self.var4 = z
childObject = Child("var4", "var3", "var1", "var2")
print(childObject.var1)
print(childObject.var2)
print(childObject.var3)
print(childObject.var4)
结果是:
var3
var3
var1
var4
我刚开始处理 Python 多重继承。
在这里,我只能用一个参数调用super().__init__(x)。它只会调用父母的__init__()。我也想初始化var2 和var3。该怎么做?
从您的回答中获得成功,我尝试修改我的代码。
但是,仍然无法初始化所有四个参数。你的答案都没有。
谢谢,还在等待答复。
【问题讨论】:
-
让所有东西都处理
*args和**kwargs或具有相同的签名。还有,为什么一切都是类属性? -
@jonrsharpe,是的,这不是我的意图。固定。
标签: python python-3.x multiple-inheritance super