Python e ordem dos métodos na herança múltipla
No Python, se você definir duas classes com o mesmo método e pretender que essas duas classes sejam classes pai, como:
class A(object):
def hello(self):
print "hello from class a"
e:
class B(object):
def hello(se,lf):
print "hello from class b"
quando você define a classe filho e adiciona as duas classes pai na ordem A e B:
class C(A, B):
def __init__(self):
self.hello()
o método usado ao chamar self.method () é aquele que pertence a A ou a primeira classe na lista de herança:
>>> C()
hello from class a
<__main__.C object at 0x10571e9d0>
Embora isso pareça verdadeiro em todos os meus casos de teste, não consigo encontrar um local nos documentos ou on-line que seja realmente seguro em qualquer plataforma e implementação do idioma. Alguém pode confirmar que é seguro assumir que a primeira classe herdada da lista sempre será o método usado sobre as outras (independentemente de chamadas super () .__ init __ () etc) ou me indicar uma documentação oficial que confirme isso?
Obrigado,