Parlons de l'héritage multiple, ce que vous pouvez faire en Python maintenant, rappelez-vous, nous avons notre
assistant utilisateur et Archer Classis.
Nous essayons de construire ce jeu en ce moment.
Nettoyons une partie de ce code.
Nous n'aurons plus besoin de la fonction init.
Nous aurons juste l'utilisateur ici.
Nous avons un assistant qui hérite de l'utilisateur et aussi Archer qui hérite de l'utilisateur.
Mais que se passe-t-il si nous voulons créer un nouveau personnage ?
Et ce personnage s'appelle une classe, disons.
Disons que ça s'appelle hybride Bjorg, on s'appelle, je sais, mais voilà le truc.
Hybrid Borg est un type spécial de personnage car il possède les pouvoirs des sorciers, à savoir l'attaque.
Il a le pouvoir que les archers ont, à savoir les flèches de contrôle.
Et juste pour le plaisir, ajoutons également du runier.
Et nous dirons simplement que Run a couru très vite.
Très bien, donc nous voulons que ce bawk hybride ait toutes ces méthodes, pouvons-nous faire ça ?
Eh bien, nous pouvons tout ce que nous devons faire est de dire Wizard puis Archer, nous pouvons lui donner autant de paramètres que nous le voulons
comme héritages multiples que nous héritons de Wizard et Archer de sorte qu'ici, disons que je ne le fais pas n'importe quoi et
je vais juste passer la tête.
Si j'instancie, disons, un Borg hybride, l'un sera hybride.
Pour la classe instanciée, je peux maintenant utiliser toutes ces choses.
Vérifions-les, disons imprimer HP one dot run.
Puis-je faire cela?
Et encore une fois, une petite faute d'orthographe, assurons-nous qu'il s'agit bien d'un borak hybride hybride, pas d'une planche hybride.
J'espère que vous ne vous ennuyez pas de cette vidéo.
Très bien.
J'obtiens une erreur manquante pour les arguments de position requis, le nom et la puissance.
D'accord, parce que même si nous devons faire passer ces choses correctement, il accepte ces paramètres.
OK, alors disons que nous voulons qu'un nom soit.
Borghi et le pouvoir d'avoir 50 ans si je gère ça.
D'accord, on dirait que ça marche vraiment vite.
J'ai pu hériter d'Archer.
Et le chèque arroz ?
Si je clique, cours.
Oh, je reçois que l'objet conseil hybride n'a pas d'attribut d'air.
Maintenant, pourquoi est-ce?
Parce que techniquement, nous.
Hérité de Wizard First, puis Archer et Wizard accepte.
Nom et pouvoir.
Mais nous n'avons jamais donné le nom de la flèche et l'arroz.
Hmm, alors comment pouvons-nous résoudre cela?
Essayons quelque chose, disons que nous avons ajouté des flèches ici 100 avec ce travail.
Hmmm, ça ne marche pas, n'est-ce pas ?
Et c'est une chose délicate avec l'héritage multiple et pourquoi certains langages de programmation ne permettent même pas
aux choses d'héritage multiple de devenir un peu délicates, car dans votre tête, vous devez vous
assurer que vous comprenez comment ces classes sont implémentées et assurez-vous que nous n'écrasons
rien.
Dans notre cas, nous pouvons compliquer un peu notre code.
Alors que pouvons-nous faire ici?
Eh bien, ici, je peux peut-être faire quelque chose comme ça, je peux dire définir.
Dedans.
Celui-ci se reçoit, il recevra un nom, un pouvoir, et aussi.
Arroz.
Et puis enfin, et là je peux dire que nous allons aussi appeler l'Archer.
Point inet.
Et ça va prendre un selfie puis passer le nom.
Et celui de Darrel.
Alors que si je lance ça.
Eh bien, ajoutons les flèches, cent ici et je clique sur exécuter.
Et voilà, Arrows fonctionne maintenant.
Maintenant, juste pour vérifier que notre attaque sur l'assistant fonctionne également, si nous attaquons.
Et clique, Ron.
Oh mec.
Maintenant, notre objet hybride n'a plus de puissance.
Donc encore une fois, pour que nous ayons du pouvoir, nous devrons copier cela et disons cette fois Wizzard en
lui-même et ensuite lui donner le pouvoir.
Si je clique, cours.
Très bien, l'attaque fonctionne, retournons vérifier, assurez-vous que nous n'avons rien cassé.
Si je clique dessus, ça marche aussi.
Et puis enfin, qu'en est-il de la signature du taureau et du travail ?
Connecté, d'accord.
Oh, mon garçon, c'était beaucoup et il y a plusieurs façons de résoudre ce problème.
Ce que je voulais vous montrer, cependant, c'est que lorsque vous faites un héritage multiple, les choses peuvent se compliquer.
Et bien que nous le parcourions étape par étape, imaginez s'il y avait une coda qui se présentait
dans votre équipe au travail et essayez de comprendre ce code où nous avons ajouté un peu de logique ici et les choses deviennent de plus
en plus compliquées et il est difficile de garder une trace de tout dans votre tête.
Et c'est pourquoi l'héritage multiple est l'une de ces choses où c'est vraiment, vraiment puissant.
Mais avec un grand pouvoir vient une grande responsabilité parce que nous créons de plus en plus de complexité.
Encore une fois, une partie de la raison pour laquelle certains langages de programmation ne vous permettent pas réellement d'effectuer un héritage multiple.
Et au fait, je vais vous embrouiller encore plus.
Et la prochaine vidéo, nous allons parler de quelque chose appelé MRO.
Et ce sera un autre excellent exemple de la raison pour laquelle vous voulez être prudent avec les héritages multiples.
Je te verrai dans celui-là.