Parliamo dell'ereditarietà multipla, cosa che puoi fare in Python ora, ricorda, abbiamo la nostra procedura
guidata utente e Archer Classis.
Stiamo cercando di costruire quel gioco proprio ora.
Ripuliamo parte di questo codice.
Non avremo più bisogno della funzione init.
Avremo solo utente qui.
Abbiamo una procedura guidata che eredita dall'utente e anche Archer che eredita dall'utente.
Ma cosa succede se vogliamo creare un nuovo personaggio?
E questo personaggio si chiama classe, diciamo.
Diciamo che si chiama ibrido Bjorg, noi siamo il nome, lo so, ma ecco il punto.
Hybrid Borg è un tipo speciale di personaggio perché ha i poteri che hanno i maghi, ovvero l'attacco.
Ha il potere che hanno gli arcieri, ovvero le frecce di controllo.
E solo per divertimento, aggiungiamo anche il runner.
E diremo solo che Run è andato molto veloce.
Bene, quindi vogliamo che questo ibrido abbia tutti questi metodi, possiamo farlo?
Bene, tutto quello che dobbiamo fare è dire Wizard e poi Archer, possiamo dargli tutti i parametri che vogliamo quante sono le
eredità multiple che ereditiamo da Wizard e Archer in modo che qui, diciamo che non lo faccio qualsiasi cosa
e passerò la testa.
Se creo un'istanza, diciamo, Borg ibrido, uno sarà ibrido.
Per la classe istanziata, ora posso usare tutte queste cose.
Controlliamoli, diciamo stampa HP one dot run.
Posso farlo?
E ancora, un piccolo errore di ortografia, assicuriamoci che sia ibrido ibrido borak, non scheda ibrida.
Spero che non ti annoi di questo video.
Tutto bene.
Ottengo un errore mancante per gli argomenti posizionali richiesti, il nome e il potere.
Va bene, perché mentre dobbiamo passare queste cose nel modo giusto, accetta questi parametri.
OK, quindi diciamo che vogliamo che sia un nome.
Borghi e il potere di essere 50 se eseguo questo.
Va bene, sembra che l'esecuzione funzioni molto velocemente.
Ho potuto ereditare da Archer.
E l'assegno arroz?
Se clicco, corro.
Oh, ho capito che l'oggetto della scheda ibrida non ha arie di attributo.
Ora, perché è così?
Perché tecnicamente noi.
Ereditato da Wizard Prima, poi Archer e Wizard accettano.
Nome e potere.
Ma non abbiamo mai dato il nome e l'arroz della freccia.
Hmm, quindi come possiamo risolverlo?
Proviamo qualcosa, diciamo che abbiamo aggiunto le frecce qui 100 con questo lavoro.
Hmmm, non funziona, vero?
E questa è una cosa complicata con l'ereditarietà multipla e perché alcuni linguaggi di programmazione in realtà non
consentono nemmeno che le cose dell'ereditarietà multipla diventino un po' complicate, perché nella tua testa, devi
assicurarti di capire come queste classi sono implementate e assicurarti che non stiamo sovrascrivendo
nulla.
Nel nostro caso, possiamo complicare un po' il nostro codice.
Allora cosa possiamo fare qui?
Bene, qui dentro, forse posso fare qualcosa del genere, posso dire definire.
Dentro.
Questo riceve se stesso, riceverà un nome, un potere e anche.
Arros.
E poi finalmente, e qui posso dire che chiameremo anche l'Arciere.
Punto inet.
E questo farà un selfie e poi passerà nel nome.
E di Darrel.
Quindi se eseguo questo.
Bene, aggiungiamo le frecce, cento qui e clicco su Esegui.
Ecco fatto, Arrows ora funziona.
Ora, solo per verificare che anche il nostro attacco al mago funzioni, se attacchiamo.
E fai clic, Ron.
Oh ragazzo.
Ora il nostro oggetto ibrido non ha alcun potere.
Quindi ancora una volta, per avere il potere, dovremo copiare questo e diciamo questa volta Wizzard in
sé e poi dargli il potere.
Se clicco, corro.
Va bene, l'attacco funziona, torniamo a controllare, assicuriamoci di non aver rotto nulla.
Se clicco su quello, funziona anche quello.
E poi, infine, che dire del segno nel segno del toro e del lavoro?
Effettuato l'accesso, va bene.
Oh, ragazzo, era molto e ci sono alcuni modi per risolvere effettivamente questo problema.
Quello che volevo mostrarti, però, è che quando fai l'ereditarietà multipla, le cose possono complicarsi.
E anche se lo esaminiamo passo dopo passo, immagina se ci fosse una coda che arrivasse sul
tuo team al lavoro e cerca di capire questo codice in cui abbiamo aggiunto un po' di logica qui e le cose stanno
diventando sempre più complicate e è difficile tenere traccia di tutto nella tua testa.
Ed è per questo che l'ereditarietà multipla è una di quelle cose in cui è davvero, davvero potente.
Ma da un grande potere derivano grandi responsabilità perché stiamo creando sempre più complessità.
Di nuovo, parte del motivo per cui alcuni linguaggi di programmazione in realtà non ti consentono di eseguire l'ereditarietà multipla.
E comunque, ti confonderò ancora di più.
E nel prossimo video, parleremo di qualcosa chiamato MRO.
E sarà un altro ottimo esempio del perché vuoi essere cauto con le eredità multiple.
Ci vediamo in quello.