Vamos falar sobre herança múltipla, que você pode fazer em Python agora, lembre-se, temos nosso assistente
de usuário e Archer Classis.
Estamos tentando construir esse jogo agora.
Vamos limpar um pouco desse código.
Não precisaremos mais da função init.
Teremos apenas um usuário aqui.
Temos assistente que herda do usuário e também Archer que herda do usuário.
Mas o que acontece se quisermos criar um novo personagem?
E esse personagem é chamado de classe, digamos.
Digamos que seja chamado de Bjorg híbrido, somos o nome, eu sei, mas é o seguinte.
Hybrid Borg é um tipo especial de personagem porque tem os poderes que os magos têm, que é o ataque.
Ele tem o poder que os arqueiros têm, que é o controle de flechas.
E apenas por diversão, vamos adicionar mais runnier.
E vamos apenas dizer que Run correu muito rápido.
Tudo bem, então queremos que esse bawk híbrido tenha todos esses métodos, podemos fazer isso?
Bem, podemos tudo o que precisamos fazer é dizer Wizard e, em seguida, Archer, podemos dar a ele tantos parâmetros quanto quisermos quanto as
várias heranças que estamos herdando de Wizard e Archer, de modo que aqui, digamos que não qualquer coisa e eu
vou apenas passar de cabeça.
Se eu instanciar, digamos, Borg híbrido, um será híbrido.
Para a instância da classe, agora posso usar todas essas coisas.
Vamos verificá-los, digamos que imprima HP one dot run.
Posso fazer isso?
E, novamente, um pequeno erro de grafia, vamos ter certeza de que é borak híbrido híbrido, não placa híbrida.
Espero que você não esteja entediado com este vídeo.
Tudo bem.
Recebo um erro faltando para os argumentos posicionais exigidos, nome e poder.
Tudo bem, porque embora tenhamos que passar essas coisas da maneira certa, ele aceita esses parâmetros.
OK, digamos que queremos um nome.
Borghi e o poder de ser 50 se eu comandar isso.
Tudo bem, parece que funcionou muito rápido, funcionou.
Pude herdar de Archer.
Que tal verificar o arroz?
Se eu clicar, corra.
Oh, eu recebo o objeto de placa híbrida não tem ares de atributos.
Agora, por que isso?
Porque tecnicamente, nós.
Herdado do Wizard primeiro, então Archer e Wizard aceita.
Nome e poder.
Mas nunca demos o nome da flecha e o arroz.
Hmm, então como podemos resolver isso?
Vamos tentar algo, digamos que adicionamos setas aqui 100 com este trabalho.
Hmmm, isso não funciona, não é?
E isso é uma coisa complicada com herança múltipla e por que algumas linguagens de programação realmente não permitem que
as coisas de herança múltipla fiquem um pouco complicadas, porque em sua cabeça, você tem que ter
certeza de entender como essas classes são implementadas e ter certeza que não estamos sobrescrevendo
nada.
Em nosso caso, podemos complicar um pouco nosso código.
Então, o que podemos fazer aqui?
Bem, aqui, talvez eu possa fazer algo assim, posso dizer definir.
Iniciar.
Este recebe a si mesmo, receberá um nome, um poder e também.
Arroz.
E então, finalmente, e aqui posso dizer que vamos chamar também o Arqueiro.
Dot inet.
E isso vai tirar uma selfie e depois passar no nome.
E do Darrel.
Então, se eu executar isso.
Bem, vamos adicionar as setas, cem aqui e eu clico em executar.
Pronto, o Arrows agora está funcionando.
Agora, só para verificar se nosso ataque ao assistente está funcionando bem, se atacarmos.
E clique, Ron.
Oh garoto.
Agora, nosso objeto híbrido não tem energia.
Então, mais uma vez, para termos poder, teremos que copiar isso e, digamos, o Wizzard em
si e então dar-lhe poder.
Se eu clicar, corra.
Tudo bem, o ataque funciona, vamos voltar para verificar, certifique-se de que não quebramos nada.
Se eu clicar nisso, também funcionará.
E então, finalmente, que tal assinar o sinal do touro e trabalhar?
Conectado, certo.
Oh, cara, isso foi muito e existem algumas maneiras de realmente resolver esse problema.
O que eu queria mostrar a você, porém, é que quando você faz herança múltipla, as coisas podem ficar complicadas.
E embora percorramos passo a passo, imagine se houvesse uma coda que surgiu em sua
equipe de trabalho e tente entender este código onde adicionamos um pouco de lógica aqui e as coisas estão ficando
cada vez mais complicadas e é difícil controlar tudo em sua cabeça.
E é por isso que a herança múltipla é uma daquelas coisas em que é muito, muito poderosa.
Mas, com grande poder, vem grande responsabilidade, porque estamos criando cada vez mais complexidade.
Novamente, parte do motivo pelo qual algumas linguagens de programação não permitem que você faça herança múltipla.
E a propósito, vou confundi-lo ainda mais.
E no próximo vídeo, vamos falar sobre algo chamado MRO.
E será outro grande exemplo de por que você deseja ser cauteloso com várias heranças.
Eu vou te ver naquele.