Kapitel 05

Komposition: Objekte kombinieren & filtern 🎵

Baue einen eigenen Spotify-Playlist-Manager und lerne, wie Objekte andere Objekte suchen, berechnen und filtern.

1. Was ist Komposition?

In großen Anwendungen (wie Spotify, Netflix oder Videospielen) arbeiten viele Klassen zusammen. Wenn eine Klasse Instanzen einer anderen Klasse beinhaltet, nennt man das Komposition (oder *"hat-ein"-Beziehung*):

🎧 Die Spotify-Analogie:
Ein Song speichert seinen Titel, den Künstler und die Länge in Sekunden. Die Playlist kümmert sich um die Gesamtübersicht: Wie viele Songs gibt es? Wie lange dauert die Playlist insgesamt? Gibt es Lieder von Taylor Swift?

2. Nützliche Python-Kniffe

⏱️ Sekunden in "MM:SS" umrechnen

Mit Ganzzahldivision // und Modulo % rechnen wir Sekunden in Minuten um:

Python
gesamt_sekunden = 215
minuten = gesamt_sekunden // 60   # 3 Minuten
sekunden = gesamt_sekunden % 60   # 35 Restsekunden

# :02d sorgt für zweistellige Zahlen mit führender Null (z.B. 03:05 statt 3:5):
zeit_text = f"{minuten:02d}:{sekunden:02d}"  # "03:35"

🔍 Groß- und Kleinschreibung beim Suchen ignorieren

Damit "Taylor Swift" auch gefunden wird, wenn jemand "taylor swift" eingibt, nutzen wir .lower():

if song.kuenstler.lower() == gesuchter_kuenstler.lower():
    treffer.append(song)

3. Deine Aufgaben in aufgabe.py

💡 Lösungshinweise (Aufklappen bei Bedarf)

Tipp zum längsten Song finden
def laengster_song(self):
    if not self.songs:
        return None
    
    bester_song = self.songs[0]
    for s in self.songs:
        if s.dauer_sekunden > bester_song.dauer_sekunden:
            bester_song = s
    return bester_song

4. Lösung überprüfen

Führe im Terminal im Ordner 05_objekte_kombinieren folgenden Befehl aus:

Terminal
python3 test_aufgabe.py