Clases de libros y usuarios
Parte de la sección Programación orientada a objetos del Journey de Python de Coddy. Lección 56 de 64.
Desafío
FácilEn este desafío, implementarás la clase Book para un sistema de gestión de bibliotecas usando una estructura de varios archivos con una cobertura completa de pruebas.
Edita book.py para implementar la clase Book siguiendo los comentarios TODO. La implementación debe:
- Inicializarse con los parámetros title, author e ISBN
- Registrar el estado de disponibilidad y la información del prestatario
- Implementar una representación textual adecuada
Pruébalo tú mismo
from book import Book
# 1. Crea un objeto Book
book = Book("1984", "George Orwell", "345678")
# 2. Comprueba los atributos
print(book.title) # Debería imprimir: 1984
print(book.author) # Debería imprimir: George Orwell
print(book.isbn) # Debería imprimir: 345678
print(book.available) # Debería imprimir: True
print(book.borrower) # Debería imprimir: None
# 3. Prueba __str__ cuando está disponible
print(book) # Debería imprimir: 1984 by George Orwell (ISBN: 345678) - Available
# 4. Prueba __str__ cuando no está disponible
book.available = False
print(book) # Debería imprimir: 1984 by George Orwell (ISBN: 345678) - Not AvailableTodas las lecciones de Programación orientada a objetos
1Fundamentos de la POO
Introducción a la POOArchivos externosClases vs. objetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Repaso: calculadora sencilla4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosRepaso: 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 de propiedadDecorador de método estáticoDecorador de método de clase5Polimorfismo
Repaso de la sobrescritura de métodosTipado patoClases y métodos abstractosDiseño de interfacesRepaso: calculadora de formas8Conceptos avanzados de POO
Composición frente a 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. variables de claseDecoradores de propiedadesAtributos privadosRepaso: gestor de cuentas bancarias6Encapsulamiento
Miembros públicos, protegidos y privadosModificadores de accesoOcultación de informaciónDecoradores de propiedades avanzadosRepaso: sistema de registros de estudiantes12Proyecto: Gestión de biblioteca
Descripción general del proyectoClases de libros y usuariosSistema de préstamosFuncionalidad de búsquedaInterfaz de administraciónPruebas e integraciónPractica por tu cuenta: Compilador de Python online