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
или имели одинаковую подпись. Кроме того, почему все является атрибутом класса? - person jonrsharpe   schedule 16.06.2014