Skip to content

POO para principiantes. Aprende el pilar del polimorfismo con Python

Posted on:May 1, 2023 at 02:05 AM

Ya para este punto conocemos de la Programación Orientada a Objetos dos pilares, el encapsulamiento y la herencia. El día de hoy nos concentraremos en el llamado polimorfismo.

La teoría de que necesitas

Ten en cuenta lo siguiente en cuanto al polimorfismo:

Si deseas profundizar más al respecto, te recomiendo que vayas a mi publicación anterior donde vimos los conceptos más importantes para poderlo entender mejor.

Herramientas que necesitas

Polimorfismo con Python

Presta mucha atención al siguiente código:

class Animal:
    def __init__(self, name):
        self.name = name

    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        return "woof"

class Cat(Animal):
    def make_sound(self):
        return "meow"

class Cow(Animal):
    def make_sound(self):
        return "moo"

En el anterior ejemplo, pasa lo siguiente:

¡Pongámoslo a prueba! 🔥

  1. Vas a crear una lista de objetos (nuestros animales) a las cuales les pondremos sus respectivos nombres

    
    animals = [Dog("Gala"), Cat("Manet"), Cow("Betsy")]
  2. Como lo guardamos en una lista vamos a realizar un ciclo que nos permita recorrer y llamar al método make_sound() de cada una de las subclases

    
    animals = [Dog("Gala"), Cat("Manet"), Cow("Betsy")]
    
    for animal in animals:
        print(animal.name + " dice " + animal.make_sound())
  3. Si todo salió bien debemos obtener el siguiente resultado

    Gala dice woof
    Manet dice meow
    Betsy dice moo

Eso es todo, ¡este es el poder del polimorfismo!. Permite que diferentes objetos se comporten de manera similar, básicamente que adquieran “diferentes formas”, lo que hace que nuestro código sea más flexible y fácil de mantener.

En nuestro próximo artículo aprenderemos el último de los pilares que nos falta conocer que es la abstracción con Python.

🤓 Reto

No podemos olvidar que la programación se aprende programando, poniendo manos a la obra. Por lo cual en el reto de hoy te invito a que a la superclase Animal le agregues nuevos métodos y que estos tengan su propia versión para cada uno de los animales propuestos anteriormente.