Sobes.tech
Junior — Middle

Explica el concepto de duck typing y en qué se diferencia de la tipificación estática en programación.

sobes.tech AI

Respuesta de la IA

Duck typing — es un concepto en programación en el que el tipo de un objeto se determina no por su clase o interfaz, sino por la presencia de ciertos métodos y propiedades. Si un objeto se comporta como "pato" (tiene los métodos necesarios), se considera adecuado.

Diferencia con la tipificación estática:

  • En la tipificación estática, los tipos se verifican en tiempo de compilación, y los objetos deben cumplir explícitamente con tipos definidos.
  • En duck typing, la verificación ocurre en tiempo de ejecución, y solo importa la compatibilidad de la interfaz (métodos/propiedades), no la herencia o los tipos declarados.

Ejemplo en Python (duck typing):

class Duck:
    def quack(self):
        print("Krya-krya")

class Person:
    def quack(self):
        print("Puedo graznar como un pato")

def make_it_quack(thing):
    thing.quack()

make_it_quack(Duck())    # Krya-krya
make_it_quack(Person())  # Puedo graznar como un pato

Aquí, la función no se preocupa por el tipo del objeto, solo por la existencia del método quack.