# Flere variabler kan dele samme referanse x = 5 y = x print(y) print(f"Minneadressen til x er {id(x)}") print(f"Minneadressen til y er {id(y)}") print(x is y) #Hvis denne printer True, s? har x og y samme referanse, de peker p? samme objekt x = 10 print(f"x er n? {x}") print(f"Minneadressen til x er endret til {id(x)}") print(f"Minneadressen til y er fortsatt {id(y)}") #y beholder referansen sin print() print() # Vi kan ha referanser til objekter uten ? ha en variabel ml = [1,2,3] print(id(ml)) print(id(ml[1])) #Indeksene holder p? referanser til int- objektene print() print() # Immutable: Det er ikke mulig ? endre verdien/ innholdet til immutable objekter # Istedet opprettes det nye objekter, som lagres p? en ny, ledig minneadresse. x = 5 print("澳门葡京手机版app下载n til x er:",id(x)) x += 1 print("N? er x:",x) print("澳门葡京手机版app下载n til x etter endring er:",id(x),"\n") a = "Hei" b = a # a[0] = "h" <-- Dette vil gi feil under kj?ring siden strenger er immutable - vi kan ikke endre innholdet print("澳门葡京手机版app下载n til a er:",id(a)) a += "!" print("澳门葡京手机版app下载n til a etter endring er:",id(a)) print(f"Peker a og b p? samme objekt: {b is a}") print() print() # Mutable: Her kan vi endre innholdet uten at det opprettes nye objekter. Referansene forblir de samme min_liste = [1,2,3] annen_referanse = min_liste # Ny peker med samme referanse print("澳门葡京手机版app下载n til lista er:",id(min_liste)) min_liste.append(4) print("澳门葡京手机版app下载n til lista etter endring er:",id(min_liste)) print(annen_referanse is min_liste) print("\n") # Hvis vi trenger originalen:.copy() b = min_liste.copy() # Funksjoner: Legg merke til forskjellen p? uskriften fra disse funksjonene. Hvorfor er det slik? def endre_streng(s): s += "!" return s streng = "Hallo" endre_streng(streng) print(f"Strengen etter funksjonskall: {streng}") def endre_liste(l): l.append("!") c = ["a", "b", "c"] endre_liste(c) print(f"Lista etter funksjonskall: {c}") print() print()