Analise o seguinte programa em Python: Quando esse prog...
Quando esse programa for executado, sua saída será
Comentários
Veja os comentários dos nossos alunos
socorro quero passar na caixa ti
poxa ...aloguem explica please?
Pelo que entendi e pesquisei:
- O super() segue a ordem de resolução de método (MRO) para determinar qual classe pai deve ser chamada.
- A MRO é definida pela hierarquia de herança.
- Você pode verificar a MRO de uma classe usando Classe.mro() .
portando temos na hierarquia:
X (pai de Y)
Y (pai de Z)
Z (e o z que chama o metodo com o super)
portanto ele ira imprimir primeiro "Y" que é o que está no método para impressão do pai de Z,
e depois o que esta no filho que é "Z".
Deem uma olhada em herança, pessoal.
Basicamente, o super() serve para chamar algo da classe superior, da classe mãe.
Notem que def mostrar() está sendo repetido diversas vezes, então para você dizer ao python que você quer o mostrar de uma classe da classe de cima, você usa o super().nome
Nesse caso temos uma herança dupla, se não me engano. Isso é possível no Python, mas a prioridade vai para a ClasseY que está em primeiro
Eu sabia que Z seria impresso, mas tinha dúvida se Y tbm seria, errei.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo