Projektübersicht
Teil des Abschnitts Object Oriented Programming der Python-Journey von Coddy — Lektion 55 von 64.
Aufgabe
MittelIn dieser Challenge implementierst du die Grundlage für ein Bibliotheksverwaltungssystem.
Bearbeite library.py, um die erforderlichen Klassen gemäß den TODO-Kommentaren zu implementieren. Die Driver-Datei enthält umfangreiche Testszenarien, die deine Implementierung validieren.
- Folge den TODO-Kommentaren in
library.pyfür eine Schritt-für-Schritt-Anleitung - Implementiere die
Library-Klasse mit ordnungsgemäßer Initialisierung und String-Repräsentation
Spickzettel
Die Herausforderung konzentriert sich auf die Implementierung eines Bibliotheksverwaltungssystems mit einer ordnungsgemäßen Klassenstruktur und Methoden zur String-Darstellung. Es wurden keine spezifischen Kursinhalte bereitgestellt, um ein umfassendes Cheatsheet zu erstellen.
Probier es selbst
# TODO: Importiere die Library-Klasse aus library.py
# Verwende das Format: from library import Library
# Umfassender Testfall-Handler
test_case = input()
if test_case == "basic_library_creation":
# TODO: Erstelle eine Bibliothek mit dem Namen "Test Library"
# TODO: Gib das Bibliotheks-Objekt aus (dies ruft die __str__-Methode auf)
pass
elif test_case == "library_attributes":
# TODO: Erstelle eine Bibliothek mit dem Namen "Test Library"
# TODO: Gib das Namensattribut der Bibliothek im Format aus: Name: Test Library
# TODO: Gib die Länge der Bücherliste im Format aus: Books: 0
# TODO: Gib die Länge der Benutzerliste im Format aus: Users: 0
# Hinweis: Verwende f-Strings, z. B. print(f"Name: {library.name}")
pass
elif test_case == "multiple_libraries":
# TODO: Erstelle zwei verschiedene Bibliotheken mit den Namen "Library 1" und "Library 2"
# TODO: Gib beide Bibliotheks-Objekte aus
pass
elif test_case == "empty_name":
# TODO: Erstelle eine Bibliothek mit einem leeren String als Namen
# TODO: Gib das Bibliotheks-Objekt aus
pass
elif test_case == "special_characters":
# TODO: Erstelle eine Bibliothek mit dem Namen "!@#$%^&*()"
# TODO: Gib das Bibliotheks-Objekt aus
pass
elif test_case == "very_long_name":
# TODO: Erstelle eine Bibliothek mit einem Namen aus genau 100 'A'-Zeichen (verwende "A" * 100)
# TODO: Gib das Bibliotheks-Objekt aus
pass
elif test_case == "add_books_users":
# TODO: Erstelle eine Bibliothek mit dem Namen "Test Library"
# TODO: Füge diese Elemente zur Bücherliste hinzu: ["Book1", "Book2", "Book3"]
# TODO: Füge diese Elemente zur Benutzerliste hinzu: ["User1", "User2"]
# TODO: Gib das Bibliotheks-Objekt aus (sollte aktualisierte Zähler anzeigen)
pass
elif test_case == "empty_lists":
# TODO: Erstelle eine Bibliothek mit dem Namen "Test Library"
# TODO: Gib die Länge der Bücherliste im Format aus: Books length: 0
# TODO: Gib die Länge der Benutzerliste im Format aus: Users length: 0
# Hinweis: Verwende f-Strings, z. B. print(f"Books length: {len(library.books)}")
pass
elif test_case == "type_validation":
# TODO: Erstelle eine Bibliothek mit der Ganzzahl 123 als Namen
# TODO: Gib das Bibliotheks-Objekt aus (sollte in einen String umgewandelt werden)
passAlle Lektionen in Object Oriented Programming
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDer self-ParameterMethodenAttributeKonstruktor-Methode (__init__)Zusammenfassung – Einfacher Taschenrechner4Vererbung
Grundlagen der VererbungDie super()-FunktionMethoden überschreibenMehrfachvererbungMethod Resolution OrderZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden
Einführung in Magic MethodsOperator-ÜberladungMagic Methods für ContainerRückblick - Eigene Liste10Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterObserver-MusterStrategy-Muster13Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung2Dekoratoren
Einführung in DekoratorenProperty-DekoratorStatischer Methoden-DekoratorKlassenmethoden-Dekorator5Polymorphismus
Methoden-Überschreiben vertieftDuck TypingAbstrakte Klassen und MethodenInterface-DesignZusammenfassung – Formen-Rechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungMixinsStatische und KlassenmethodenKlassendekoratorenContext Manager3Klasseneigenschaften
Instanz- vs. KlassenvariablenProperty-DekoratorenPrivate AttributeZusammenfassung – Bankkonto-Manager6Kapselung
Public, Protected, Private MemberZugriffsmodifikatorenInformation HidingProperty-Decorators für FortgeschritteneZusammenfassung - Studentenverwaltungssystem12Projekt: Bibliotheksverwaltung
ProjektübersichtBuch- und Benutzerklassen