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

Interfaces Python: Abstracción con datos

Usamos la palabra interfaz sin darnos cuenta en la vida diaria.

  • 🏧 Un cajero automático
  • 🎮 Un control remoto
  • 🚗 El volante de un carro

Son interfaces que usamos para interactuar con un sistema.

En programación, el concepto es muy similar. Veamos cómo.


Interfaz en programación

En programación, la interfaz es un conjunto de funciones que permiten interactuar con una estructura de datos o un sistema sin necesidad de conocer todos los detalles internos de su funcionamiento.

Estas funciones se definen por:

  • Su nombre
  • Los parámetros que reciben
  • Los valores que devuelven

Es decir, una interfaz describe qué se puede hacer con una abstracción, pero no cómo se hace internamente.

Ejemplo de interfaz en Python

Imagina que estamos trabajando con una abstracción para manejar información de usuarios. Definimos un conjunto de funciones que permitirán crear usuarios, obtener su edad e identificar si son mayores de edad:

# Esta función crea un usuario con un nombre y fecha de nacimiento
def make_user(name, birthday):
    return {
        "name": name,
        "birthday": birthday,
    }

# Esta función devuelve la edad del usuario a partir de su fecha de nacimiento
def get_age(user):
    return calculate_age(user["birthday"])

# Esta función usa get_age para determinar si el usuario es mayor de edad
def is_adult(user):
    return get_age(user) >= 18

En este caso, make_user, get_age e is_adult forman la interfaz de nuestra abstracción "Usuario". Son funciones que el código externo puede utilizar sin preocuparse por los detalles internos de su implementación.

Funciones internas

Algunas funciones existen solo para ayudar a la implementación interna de una abstracción, pero no deben ser usadas desde afuera. Se conocen como funciones auxiliares o funciones internas.

Por ejemplo, nuestra implementación necesita una función para calcular la edad del usuario. Como esta función no debería ser usada directamente desde el exterior, no forma parte de la interfaz:

# Esta función auxiliar calcula la edad de un usuario a partir de su fecha de nacimiento
def calculate_age(birthday):
    # Supongamos que aquí hay una lógica para calcular la edad
    pass

El código externo nunca llamará a calculate_age directamente, sino que usará get_age, que sí es parte del interfaz.


Abstracción e interfaz

Al hablar de interfaces en programación, también es importante entender otro concepto clave: la abstracción.

La abstracción es el modelo conceptual de los datos con los que trabajamos.

Por ejemplo, en cualquier aplicación web suele haber una abstracción llamada usuario. En una plataforma educativa como esta, podríamos tener abstracciones como curso o proyecto. Un interfaz proporciona los medios para interactuar con esas abstracciones.


Interfaces en bibliotecas y sistemas complejos

En sistemas avanzados, como bibliotecas o frameworks, suele haber muchas más funciones internas que aquellas expuestas en la interfaz pública. De hecho, una biblioteca puede contar con cientos de funciones internas, pero solo unas pocas estarán disponibles para los usuarios.

La calidad de una abstracción en programación está estrechamente relacionada con la claridad, simplicidad y facilidad de uso de su interfaz. Entre más claro sea el interfaz de una biblioteca o un módulo, más fácil será trabajar con él.


Resumen

  • Un interfaz en programación es un conjunto de funciones definidas para interactuar con una abstracción.
  • La interfaz describe qué se puede hacer, pero no cómo se hace internamente.
  • Las funciones auxiliares o internas no forman parte del interfaz; solo se usan dentro de la propia implementación.
  • Una abstracción representa un modelo conceptual, como "usuario" o "curso".

Entender la diferencia entre interfaz y abstracción te permitirá diseñar código más limpio, reutilizable y fácil de mantener.

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