Herencia y Duck Typing

Reutilización y flexibilidad pitónica.

Herencia Simple

Permite que una clase hija herede atributos y métodos de una clase padre.

class Animal:
    def hablar(self):
        pass

class Perro(Animal):
    def hablar(self):
        return "Guau!"

class Gato(Animal):
    def hablar(self):
        return "Miau!"

Duck Typing

"If it walks like a duck and quacks like a duck, it's a duck."

En Python, no importa el tipo del objeto, sino lo que puede hacer. Si un objeto tiene el método necesario, Python lo usará sin importar su jerarquía de herencia.

def hacer_hablar(objetos):
    for obj in objetos:
        print(obj.hablar())

# No necesitan heredar de 'Animal' para funcionar aquí
hacer_hablar([Perro(), Gato()])