👀 Voorbeeld - Doorspoelen

⏩ Louise wil doorspoelen naar het volgende liedje. Ze voegt een methode volgende toe aan de Spotify-klasse. Als ze aan het einde van de playlist is, speelt ze terug af van het begin.

❗ Opmerking: je ziet in de code hieronder meermaals het woordje self staan. Probeer eens te beredeneren waarom dat dat daar staat. Als je het nog niet begrijpt is dat niet zo erg, we komen hier nog op terug!

class Spotify:

    def __init__(self,liedjes):
        self.afspeellijst = liedjes
        self.huidige_index = 0
        self.huidig_liedje = liedjes[self.huidige_index]

    def volgende(self):
        volgende_index = self.huidige_index + 1
        # controleer of de hele lijst doorlopen is
        if volgende_index == len(self.afspeellijst):
            # als de hele lijst doorlopen is, begin je terug van vooraf aan
            self.huidige_index = 0
        else:
            # als de hele lijst nog niet doorlopen is, dan wordt de huidige index een cijfertje hoger
            self.huidige_index = volgende_index
        self.huidig_liedje = self.afspeellijst[self.huidige_index]

Ze gebruikt nu de methode volgende() om het liedje door te spoelen.

louises_liedjes = ['Sk8er Boi','Allemaal','Piano Man','Sultans of Swing','Dancing Queen','Jailhouse Rock']
louises_lijst = Spotify(louises_liedjes)

print('Eerst luisterde Louise naar', louises_lijst.huidig_liedje)

louises_lijst.volgende()

print('Het huidige liedje is', louises_lijst.huidig_liedje)

Kopieer en plak de twee bovenstaande codeblokken onder elkaar in de sandbox en voer ze uit. Voeg het lijntje louises_lijst.volgende() nog een aantal keer toe en kijk wat er gebeurt. Doe dit zeer aandachtig en probeer je code zo goed mogelijk te begrijpen.

💻 Programmeeroefening - Huidige index

Louise wil naar Dancing Queen luisteren en spoelt door tot ze aan dat nummer komt. Kopieer en plak de twee bovenstaande codeblokken in de editor hieronder, voeg verschillende keren het lijntje louises_lijst.volgende() toe zodat dat Louise naar Dancing Queen kan luisteren.