Descripción general del proyecto
Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 55 de 64.
Desafío
IntermedioEn este desafío, implementarás la base para un Sistema de Gestión de Biblioteca.
Edita library.py para implementar las clases requeridas siguiendo los comentarios TODO. El archivo driver contiene extensos escenarios de prueba que validan tu implementación.
- Sigue los comentarios TODO en
library.pypara obtener una guía paso a paso - Implementa la clase
Librarycon la inicialización y representación de cadena adecuadas
Hoja de referencia
El desafío se centra en implementar un Sistema de Gestión de Bibliotecas con una estructura de clases adecuada y métodos de representación de cadenas. No se proporcionó contenido de lección específico para crear una hoja de trucos completa.
Pruébalo tú mismo
# TODO: Importar la clase Library de library.py
# Usar formato: from library import Library
# Manejador integral de casos de prueba
test_case = input()
if test_case == "basic_library_creation":
# TODO: Crear una biblioteca con el nombre "Test Library"
# TODO: Imprimir el objeto library (esto llamará al método __str__)
pass
elif test_case == "library_attributes":
# TODO: Crear una biblioteca con el nombre "Test Library"
# TODO: Imprimir el atributo name de la biblioteca en el formato: Name: Test Library
# TODO: Imprimir la longitud de la lista books en el formato: Books: 0
# TODO: Imprimir la longitud de la lista users en el formato: Users: 0
# Sugerencia: Usar f-strings, ej. print(f"Name: {library.name}")
pass
elif test_case == "multiple_libraries":
# TODO: Crear dos bibliotecas diferentes con los nombres "Library 1" y "Library 2"
# TODO: Imprimir ambos objetos library
pass
elif test_case == "empty_name":
# TODO: Crear una biblioteca con una cadena vacía como nombre
# TODO: Imprimir el objeto library
pass
elif test_case == "special_characters":
# TODO: Crear una biblioteca con el nombre "!@#$%^&*()"
# TODO: Imprimir el objeto library
pass
elif test_case == "very_long_name":
# TODO: Crear una biblioteca con un nombre de exactamente 100 caracteres 'A' (usar "A" * 100)
# TODO: Imprimir el objeto library
pass
elif test_case == "add_books_users":
# TODO: Crear una biblioteca con el nombre "Test Library"
# TODO: Agregar estos elementos a la lista books: ["Book1", "Book2", "Book3"]
# TODO: Agregar estos elementos a la lista users: ["User1", "User2"]
# TODO: Imprimir el objeto library (debería mostrar los conteos actualizados)
pass
elif test_case == "empty_lists":
# TODO: Crear una biblioteca con el nombre "Test Library"
# TODO: Imprimir la longitud de la lista books en el formato: Books length: 0
# TODO: Imprimir la longitud de la lista users en el formato: Users length: 0
# Sugerencia: Usar f-strings, ej. print(f"Books length: {len(library.books)}")
pass
elif test_case == "type_validation":
# TODO: Crear una biblioteca con el entero 123 como nombre
# TODO: Imprimir el objeto library (debería convertirse a cadena)
passTodas las lecciones de Object Oriented Programming
1Fundamentos de la POO
Archivos externosIntroducción a la POOClases vs ObjetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Resumen - Calculadora simple4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosResumen - Jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso - Lista personalizada10Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador propertyDecorador de métodos estáticosDecorador de métodos de clase5Polimorfismo
Sobreescritura de métodos revisitadaDuck TypingClases y métodos abstractosDiseño de interfacesResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs de claseDecoradores de propiedadesAtributos privadosResumen - Gestor de cuentas bancarias6Encapsulamiento
Miembros públicos, protegidos y privadosModificadores de accesoOcultamiento de informaciónDecoradores de propiedades avanzadosResumen - Sistema de registros de estudiantes12Proyecto: Gestión de biblioteca
Descripción general del proyectoClases de Libros y Usuarios