Saltar a contenido

El concepto de abstracción

Imagina que estás construyendo con LEGO. Tienes muchas piezas pequeñas y quieres hacer algo grande, como un castillo.

Sería muy complicado y tomaría mucho tiempo si tuvieras que pensar en cada pieza pequeña cada vez que quieres construir algo. Aquí es donde entran las funciones en la programación.

Las funciones son como instrucciones para hacer cosas específicas. Por ejemplo, podrías tener una instrucción llamada "construir torre" que te dice exactamente cómo hacer una torre con LEGO.

Cada vez que quieras una torre en tu castillo, solo tienes que decir "construir torre" en lugar de pensar en cada pieza individual y en cómo encastrarlas para obtener una torre.

En programación, esto se llama "abstracción". Es como tomar algo complicado y convertirlo en algo simple y fácil de entender.

Por ejemplo:

Python
def saludar():
    print("¡Hola!")

Podrías tener una función llamada saludar() que simplemente dice "hola". Es simple, pero útil.

Python
def obtener_numero():
    return 5

Ahora, solo para ilustrar el concepto, veamos un ejemplo de aplicación de abstracción en un contexto más complejo. Supongamos que queremos efectuar el mismo saludo un número determinado de veces. Ese número determinado de veces se encuentra encapsulado en algún lugar y el saludo también se encuentra encapsulado en algún lugar.

Decimos que se encuentran encapsulados porque no están directamente en el código principal, sino que están en funciones. A nosotros no nos interesa cómo se obtiene ese número ni cómo se saluda, solo queremos que se haga.

¿Cómo se resuelve este problema?

Podríamos resolverlo de la siguiente manera:

Python
# Función principal
def main():
    # Obtener el número de saludos y saludar 
    for _ in range(obtener_numero()):
        saludar()

# Función para obtener un número
def obtener_numero():
    return 5

# Función para saludar
def saludar():
    print("¡Hola!")

# Llamar a la función principal
main()

La salida de este código sería:

Terminal (Entrada/Salida)
¡Hola!
¡Hola!
¡Hola!
¡Hola!
¡Hola!

En este caso, la función main() ejecuta un bucle que llama a la función saludar() cinco veces, según el valor retornado por la función obtener_numero(). La función saludar() imprime "¡Hola!" en la consola.

No te preocupes si este código te resulta complicado y críptico. Justamente es lo que quiero ilustrarte. Que la abstracción te permite simplificar la complejidad de un problema y dividirlo en partes más manejables. Iremos avanzando en nuestro estudio para que puedas comprenderlo mejor.