我目前正在使用这个模式创建一个类C
,它继承自A
和B
。我无法从C
调用super().__init__
,因为我必须在A
和B
中执行相同的操作,并且意外的参数将导致顶层出现问题。我觉得这不是很优雅。在Python中执行多重继承的正确方法是什么?我猜查询mro
以确定超类是否需要参数是不寻常的?你知道吗
class A:
def __init__(self, something):
self.a = X(something)
def method_a(self):
self.a.go()
def method_ab(self):
self.a.go2()
class B:
def __init__(self, something):
self.b = X(something)
def method_b(self):
self.b.go()
def method_ab(self):
self.b.go2()
class C(A, B):
def __init__(self, something):
self.a_ = A(something)
self.b_ = B(something)
@property
def a(self):
return self.a_.a
@property
def b(self):
return self.b_.b
def method_ab(self):
for x in [self.a, self.b]:
x.method_ab()
我找到的最佳解决方案是使用基类来吸收额外的参数:
相关问题 更多 >
编程相关推荐