Hablemos de herencia múltiple, que ahora puede hacer en Python, recuerde, tenemos nuestro asistente
de usuario y Archer Classis.
Estamos intentando construir ese juego ahora mismo.
Limpiemos algo de este código.
Ya no necesitaremos la función init.
Solo tendremos usuario aquí.
Tenemos un asistente que hereda del usuario y también Archer que hereda del usuario.
Pero, ¿qué pasa si queremos crear un nuevo personaje?
Y este personaje se llama clase, digamos.
Digamos que se llama híbrido Bjorg, nos llamamos, lo sé, pero aquí está la cosa.
Hybrid Borg es un tipo especial de personaje porque tiene los poderes que tienen los magos, que es el ataque.
Tiene el poder que tienen los arqueros, que son las flechas de control.
Y solo por diversión, agreguemos también runnier.
Y solo diremos que Run corrió muy rápido.
Muy bien, entonces queremos que este bawk híbrido tenga todos estos métodos, ¿podemos hacer eso?
Bueno, todo lo que tenemos que hacer es decir Wizard y luego Archer, podemos darle tantos parámetros como queramos, ya que
heredamos múltiples herencias de Wizard y Archer para que aquí, digamos que no lo hago. cualquier cosa y
solo pasaré de cabeza.
Si instalo, digamos, un Borg híbrido, uno será híbrido.
Para la clase instanciada, ahora puedo usar todas estas cosas.
Vamos a comprobarlos, digamos que imprima HP con una tirada de un punto.
¿Puedo hacer eso?
Y nuevamente, un pequeño error de ortografía, asegurémonos de que sea un borak híbrido híbrido, no una placa híbrida.
Espero que no te aburras de este video.
Está bien.
Recibo un error que falta en los argumentos posicionales requeridos, el nombre y el poder.
Está bien, porque si bien tenemos que pasar estas cosas correctamente, acepta estos parámetros.
Bien, digamos que queremos que sea un nombre.
Borghi y el poder de tener 50 años si ejecuto esto.
Muy bien, parece que se ejecutó realmente rápido, la ejecución funciona.
Pude heredar de Archer.
¿Y el arroz de cheque?
Si hago clic, corre.
Oh, tengo un objeto de tablero híbrido que no tiene aires de atributo.
Ahora, ¿por qué es eso?
Porque técnicamente nosotros.
Heredado de Wizard First, luego Archer y Wizard aceptan.
Nombre y poder.
Pero nunca dimos el nombre de la flecha y el arroz.
Hmm, entonces, ¿cómo podemos resolver eso?
Intentemos algo, digamos que agregamos flechas aquí 100 con este trabajo.
Hmmm, eso no funciona, ¿verdad?
Y esto es algo complicado con herencia múltiple y por qué algunos lenguajes de programación en realidad ni siquiera
permiten que las cosas de herencia múltiple se vuelvan un poco complicadas, porque en su cabeza, debe
asegurarse de comprender cómo se implementan estas clases y asegurarse de que no estamos sobrescribiendo
nada.
En nuestro caso, podemos complicar un poco nuestro código.
Entonces, ¿qué podemos hacer aquí?
Bueno, aquí, quizás pueda hacer algo como esto, puedo decir definir.
En eso.
Este se recibe a sí mismo, recibirá un nombre, un poder y también.
Arroz.
Y luego, finalmente, y aquí puedo decir que vamos a llamar también al Arquero.
Punto inet.
Y eso va a tomar una selfie y luego pasar el nombre.
Y el de Darrel.
Así que si ejecuto esto.
Bueno, agreguemos las flechas, cien aquí y hago clic en ejecutar.
Ahí lo tienes, Arrows ahora está funcionando.
Ahora, solo para comprobar que nuestro ataque al asistente también está funcionando, si atacamos.
Y haz clic, Ron.
Oh chico.
Ahora nuestro objeto híbrido no tiene poder.
Entonces, una vez más, para que tengamos poder, tendremos que copiar esto y digamos que esta vez Wizzard en
sí mismo y luego darle poder.
Si hago clic, corre.
Muy bien, el ataque funciona, volvamos a comprobar, asegúrate de que no hayamos roto nada.
Si hago clic en eso, también funciona.
Y luego, finalmente, ¿qué hay de firmar en signo de toro y trabajar?
Iniciado sesión, está bien.
Vaya, eso fue mucho y hay algunas formas de resolver este problema.
Sin embargo, lo que quería mostrarte es que cuando haces herencia múltiple, las cosas pueden complicarse.
Y aunque lo repasamos paso a paso, imagina si hubiera una coda en tu equipo en
el trabajo e intenta entender este código donde hemos agregado bastante lógica aquí y las cosas se están volviendo cada vez más complicadas
y es difícil hacer un seguimiento de todo lo que hay en tu cabeza.
Y esta es la razón por la que la herencia múltiple es una de esas cosas en las que es realmente muy poderosa.
Pero un gran poder conlleva una gran responsabilidad porque estamos creando cada vez más complejidad.
Nuevamente, parte de la razón por la que algunos lenguajes de programación en realidad no le permiten hacer herencia múltiple.
Y por cierto, te voy a confundir aún más.
Y en el siguiente video, hablaremos de algo llamado MRO.
Y será otro gran ejemplo de por qué debe tener cuidado con las herencias múltiples.
Te veré en ese.