Présentation du projet
Fait partie de la section Object Oriented Programming du Journey Python de Coddy — leçon 55 sur 64.
Défi
MoyenDans ce défi, vous allez implémenter la base d'un système de gestion de bibliothèque.
Modifiez library.py pour implémenter les classes requises en suivant les commentaires TODO. Le fichier driver contient des scénarios de test approfondis qui valident votre implémentation.
- Suivez les commentaires TODO dans
library.pypour un guidage étape par étape - Implémentez la classe
Libraryavec une initialisation appropriée et une représentation sous forme de chaîne de caractères
Aide-mémoire
Le défi porte sur la mise en œuvre d'un système de gestion de bibliothèque avec une structure de classe appropriée et des méthodes de représentation de chaînes de caractères. Aucun contenu de leçon spécifique n'a été fourni pour créer un aide-mémoire complet.
Essayez vous-même
# TODO: Importer la classe Library depuis library.py
# Utiliser le format : from library import Library
# Gestionnaire complet de cas de test
test_case = input()
if test_case == "basic_library_creation":
# TODO: Créer une bibliothèque avec le nom "Test Library"
# TODO: Afficher l'objet library (cela appellera la méthode __str__)
pass
elif test_case == "library_attributes":
# TODO: Créer une bibliothèque avec le nom "Test Library"
# TODO: Afficher l'attribut name de la bibliothèque au format : Name: Test Library
# TODO: Afficher la longueur de la liste books au format : Books: 0
# TODO: Afficher la longueur de la liste users au format : Users: 0
# Astuce : Utiliser des f-strings, par ex. print(f"Name: {library.name}")
pass
elif test_case == "multiple_libraries":
# TODO: Créer deux bibliothèques différentes avec les noms "Library 1" et "Library 2"
# TODO: Afficher les deux objets library
pass
elif test_case == "empty_name":
# TODO: Créer une bibliothèque avec une chaîne vide comme nom
# TODO: Afficher l'objet library
pass
elif test_case == "special_characters":
# TODO: Créer une bibliothèque avec le nom "!@#$%^&*()"
# TODO: Afficher l'objet library
pass
elif test_case == "very_long_name":
# TODO: Créer une bibliothèque avec un nom d'exactement 100 caractères 'A' (utiliser "A" * 100)
# TODO: Afficher l'objet library
pass
elif test_case == "add_books_users":
# TODO: Créer une bibliothèque avec le nom "Test Library"
# TODO: Ajouter ces éléments à la liste books : ["Book1", "Book2", "Book3"]
# TODO: Ajouter ces éléments à la liste users : ["User1", "User2"]
# TODO: Afficher l'objet library (devrait montrer les compteurs mis à jour)
pass
elif test_case == "empty_lists":
# TODO: Créer une bibliothèque avec le nom "Test Library"
# TODO: Afficher la longueur de la liste books au format : Books length: 0
# TODO: Afficher la longueur de la liste users au format : Users length: 0
# Astuce : Utiliser des f-strings, par ex. print(f"Books length: {len(library.books)}")
pass
elif test_case == "type_validation":
# TODO: Créer une bibliothèque avec l'entier 123 comme nom
# TODO: Afficher l'objet library (devrait être converti en chaîne)
passToutes les leçons de Object Oriented Programming
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaire6Encapsulation
Membres Publics, Protégés, PrivésModificateurs d'accèsMasquage d'informationsDécorateurs Property AvancésRécapitulatif - Système de Gestion d'Étudiants12Projet : Gestion de bibliothèque
Présentation du projetClasses Livre et Utilisateur