Als developer, wil ik gegevens die bij elkaar horen in één blauwdruk vastleggen in plaats van in steeds meer losse variabelen, zodat ik een derde of vierde ding kan toevoegen zonder dat mijn code dichtslibt met losse namen die ik zelf uit elkaar moet houden.
Je houdt data bij van twee dingen tegelijk met losse variabelen. Dat lijkt te werken β tot er een derde bijkomt. Dan zie je waarom Python classes heeft: één blauwdruk, in plaats van tientallen losse variabelen die je met de hand uit elkaar houdt.
Stel je houdt in een spel de gegevens van een hond bij: zijn naam, zijn energie en zijn aantal trucjes. Met losse variabelen doe je dat zo:
dog1_name = "Rex"
dog1_energy = 100
dog1_tricks = 3
Komt er een tweede hond bij, dan kopieer je het blok en verander je het cijfer:
dog2_name = "Bella"
dog2_energy = 100
dog2_tricks = 0
Bij twee honden lijkt dit prima. Maar de gegevens die bij elkaar horen β alles van hond 1 β zitten niet echt aan elkaar vast. Python ziet zes losse variabelen zonder verband. Jij houdt het verband in je hoofd, en dat is precies het probleem.
hond2_energie waar je hond3_energie bedoelde β en
je verlaagt de energie van de verkeerde hond. Niks crasht. Het gaat gewoon stil fout.
Klik op Voeg hond toe en kijk hoe snel de berg variabelen groeit. Elke hond heeft er drie nodig, en jij moet ze allemaal uit elkaar houden.
class β die zegt "een hond heeft een naam, energie en trucjes". Daarna maak je
er zoveel honden uit als je wilt, elk met eigen data, zónder één variabele te kopiëren.
Voel het probleem zelf. Maak losse variabelen aan en probeer dan "heel hond 1" in één keer op te vragen β dat lukt niet, want er is geen verband.
dog1_name = "Rex"dog1_energy = 100dog1_name β vraag de losse variabele op.dog1 β probeer "de hele hond" op te vragen. Wat gebeurt er?dog1_energy = dog1_energy - 10 β verlaag de energie.Je bouwt de administratie van een klein toernooi met spelers. Elke speler heeft een naam, een aantal levens en een score. Doe dit bewust nog met losse variabelen β zodat je aan den lijve voelt waarom het niet schaalt.
name β lives β score.Acceptatiecriteria