Dans mon code, j'ai la relation d'héritage B -> C -> D
, et il y a une fonction particulière f
d'intérêt iciEn héritage multiple python, est-il possible pour un parent d'accéder à un autre parent sans savoir ce que ce parent est?
class C(B):
def f(self):
if <some condition>:
B.f(self)
else:
<do other stuff>
Et la question est qu'il existe de multiples possibilités de B
en réalité, mais la logique de C
est le même. Une façon simple est alors d'utiliser l'héritage linéaire à plusieurs reprises, à savoir,
B1 -> C1 -> D1
B2 -> C2 -> D2
B3 -> C3 -> D3
Cependant, il est inutile. Ensuite, je pense à l'aide de l'héritage multiple
D1(C, B1)
D2(C, B2)
D3(C, B3)
Ensuite, le problème est de savoir comment C.f()
accès B1.f()
(même pour B2
, B3
) car il ne connaît que l'existence de B1
via D1
?
Est-ce une mauvaise idée d'utiliser l'héritage multiple dans ce cas? Ou y at-il un meilleur moyen que l'héritage linéaire simple avec plusieurs C
s et l'héritage multiple (si cela fonctionne)?