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.