Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Abstracción con ayuda de funciones Python: Funciones

El objetivo principal de las funciones no es solo reducir la duplicación de código, sino elevar el nivel de abstracción.

Por ejemplo, en lugar de escribir una función de ordenamiento en cada parte del código, podemos usar sort(), que:

✔ Oculta la implementación interna.

✔ Permite centrarnos en el resultado sin preocuparnos por los detalles del algoritmo.

Este enfoque simplifica el código y mejora la reutilización.

¿Qué es la abstracción?

La abstracción consiste en ignorar detalles innecesarios y enfocarse en la esencia de un problema.

✔ Un buen nivel de abstracción hace el código más claro y reutilizable.

✔ Demasiada abstracción puede hacer el código difícil de entender.

✔ Poca abstracción genera duplicación y código repetitivo.

La clave está en encontrar el equilibrio adecuado.

Las funciones de orden superior (como map(), filter() y reduce()) llevan la abstracción un paso más allá al permitir delegar comportamiento mediante funciones anónimas.

Ejemplos de malas abstracciones

La primera versión: Sin abstracción

Queremos una función que:

  • Reciba un número.
  • Devuelva "yes" si es par y "no" si es impar.
def check(number):
  if number % 2 == 0:
    result = 'yes'
  else:
    result = 'no'
  return result

🤔 Problema: El concepto de "paridad" no está abstraído en una función separada, lo que dificulta la reutilización del código.

La segunda versión: Abstracción incorrecta

def is_even(number):
  if number % 2 == 0:
    return 'yes'
  else:
    return 'no'

def check(number):
  result = is_even(number)
  return result

Errores:

❌ La función is_even() mezcla la lógica de paridad con la salida del mensaje.

❌ Su nombre sugiere que devuelve un booleano, pero devuelve "yes" o "no".

Solución

def is_even(number):
  return number % 2 == 0

def check(number):
  return 'yes' if is_even(number) else 'no'
  • Ahora is_even() solo evalúa si un número es par.
  • La función check() se encarga del formato de salida, manteniendo el código más limpio.

Resumen

  • El propósito de las funciones es mejorar la abstracción, no solo reducir la duplicación.
  • Un exceso de abstracción puede hacer que el código sea innecesariamente complejo.
  • Cada función debe reflejar un concepto bien definido y separado.
  • Las funciones de orden superior permiten reutilización sin duplicación.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY