Liten oppklaring fra dagens forelesing

(Hvis du bare leser forelesningsnotatene og ikke var på forelesning, trenger du ikke tenke på dette.)

TLDR: int-objekter oppfører seg ikke annerledes enn andre Python-objekter når det gjelder referanser

Det som er spesielt med int-objekter, er at de er såkalt immutable, det vil si at det ikke går an å endre verdien til et int-objekt på noen måte etter at det er laget. Vi har ingen metoder som tilsvarer .mal(farge) for int-objekter og endrer tilstanden til objektet.

"Men hva om du tar
a = 1
a += 1
vil du ikke gjøre det da?"

Nei, "a += 1" er bare forkortelse for "a = a + 1", og da returneres et nytt int-objekt. (Og dette har de forresten fått til ved å bruke en magisk metode __add__ som definerer hvordan operatoren + skal oppføre seg for denne typen objekter.) Det skjer ikke noe med det gamle objektet - det har fortsatt samme verdi for all framtid.

Hovedpoenget med variabler, referanser og objekter gjelder også for int-objekter. Det er det viktigste her. (Men spør gjerne i Mattermost hvis dette ikke var oppklarende.)

(PS: I python tutor kan det se ut som om "a = 5" og "b = a" resulterer i at a og b alltid blir to ulike objekter. Det er ikke tilfelle, men det er er problem med python tutor, ikke med int-objektene i seg selv.)

Publisert 28. mars 2023 15:20 - Sist endret 28. mars 2023 15:20