Domina los fundamentos de la programación orientada a objetos en Python: define una clase como molde, crea objetos con el método constructor y configura un entorno virtual con UV para ejecutar tu código de forma aislada. Aquí verás cómo usar class, self y init, además de iniciar un proyecto con uv init y estructurar un catálogo de libros.
¿Cómo iniciar un proyecto con UV y preparar el entorno?
Inicia en una carpeta vacía y verifica que UV esté instalado. Luego, crea la estructura base del proyecto con uv init, que incluye archivos clave como main.py, la descripción del proyecto con sus dependencias y el README para documentación. Si Python no se encuentra al ejecutar, crea y activa un entorno virtual con UV.
¿Qué archivos genera uv init y para qué sirven?
Archivo con la versión de Python del proyecto: asegura reproducibilidad.
main.py: punto de entrada para escribir y ejecutar el código.
Descripción del proyecto y lista de dependencias: ajusta el nombre, por ejemplo a "biblioteca".
README: guía con instrucciones para el equipo de desarrollo.
# Verificar instalación de UVuv version
# Inicializar el proyectouv init
¿Cómo crear y activar un entorno virtual con UV?
Si Python no se ejecuta, crea un entorno virtual con UV.
Actívalo y ejecuta tu script para validar que todo funciona.
# Crear entorno virtualuv vm
# Activar entorno virtual (según tu shell)source .venv/bin/activate
# Ejecutar el programapython main.py
¿Qué es una clase en Python y cómo se define?
Una clase es como un molde de pastel: define la forma y estructura. Con ese molde, puedes crear múltiples objetos, cada uno con sus propios valores. En Python, se declara con la palabra reservada class, el nombre con primera letra mayúscula y dos puntos. Si aún no implementas detalles, usa pass.
# Primera definición: plano sin instruccionesclassLibro:pass
¿Cómo usar self y el método constructor init?
Dentro de una clase, las funciones se llaman métodos. El método constructorinit recibe los parámetros iniciales y siempre incluye self, que referencia al propio objeto. No retorna valor: solo inicializa atributos del objeto con self.
classLibro:def__init__(self, titulo, autor): self.titulo = titulo
self.autor = autor
self: referencia al objeto que se está creando.
init: método que define los atributos iniciales.
Atributos: valores como titulo y autor que cada objeto almacena.
¿Cómo instanciar y acceder a atributos?
Crea variables en minúscula para instancias y pasa los argumentos esperados por init. Nota que self no se pasa al instanciar: Python lo maneja automáticamente.
mi_libro = Libro('Cien años de soledad','Gabriel García')otro_libro = Libro('El Principito','Antoine de Saint-Exupéry')print(mi_libro.titulo)print(mi_libro.autor)print(otro_libro.titulo)print(otro_libro.autor)
Cada uso del “molde” crea un objeto con valores propios.
Al imprimir, verás atributos distintos por cada instancia.
¿Cómo extender la clase libro y practicar con un reto?
Para afianzar, agrega nuevos parámetros y crea una lista tipo catálogo. Luego, recórrela con un for para imprimir cada libro. Esto solidifica los conceptos de atributos, listas y bucles.
¿Cómo agregar ISBN y disponible?
Amplía el constructor para incluir ISBN y disponible de tipo booleano. Define los nuevos atributos con self.
classLibro:def__init__(self, titulo, autor, isbn, disponible): self.titulo = titulo
self.autor = autor
self.isbn = isbn
self.disponible = disponible
¿Cómo construir un catálogo y recorrerlo con for?
Crea una lista con varias instancias y recórrela para imprimir sus valores.
catalogo =[ Libro('Cien años de soledad','Gabriel García','9780307474728',True), Libro('El Principito','Antoine de Saint-Exupéry','9780156013987',False),]for libro in catalogo:print(libro.titulo, libro.autor, libro.isbn, libro.disponible)
¿Tienes otra versión del reto o una mejora para el catálogo? Comparte tu solución y cuéntame cómo lo abordaste.