Du tror alle objekter deler de samme verdiene

Handler om: Flere objekter (uavhengig tilstand), Attributt (egenskap)

Det er lett å tro at hvis du endrer ett objekts egenskap, endres alle. Men hvert objekt har sin egen, uavhengige tilstand i sitt eget minne — å endre det ene rører ikke det andre.

Eksempel

Du endrer baller[0].x og tror baller[1].x også blir nullstilt.

Slik tenker du riktig om det

Tenk på ti baller på skjermen som beveger seg hver for seg — hver har sin egen x i sitt eget minne. Lager du objektene i en løkke, får hvert sitt eget sett egenskaper.

Slik ser det ut i kode

Slik gikk det galt

baller[0].x = 0
# du tror dette også nullstiller baller[1].x
# (det gjør det ikke)

Slik fikser du det

baller[0].x = 0      # bare den FØRSTE ballen
print(baller[1].x)   # uendret

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala