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