Middle
Mis juhtub mälus, kui Pythonis suureneb muutuja väärtus ühe võrra?
sobes.tech AI
Vastus AI-lt
Pythonis on muutujad viited mälus olevatele objektidele, mitte ise väärtused. Kui suurendad muutuja väärtust ühe võrra, näiteks x += 1, toimub järgmist:
- Loobub uus objekt uue väärtusega (kui tüüp ei muutu, näiteks int).
- Muutuja
xhakkab viitama sellele uuele objektile. - Vana objekt jääb mällu seni, kuni sellele on viiteid; kui viiteid pole, kogujad vabastab mälu.
Näide:
x = 5
print(id(x)) # objekti aadress numbriga 5
x += 1
print(id(x)) # objekti aadress numbriga 6 — erinev eelmisest
Nii, muutes muutuja väärtust, luuakse uus objekt ja muutuja suunatakse sellele. See on tingitud sellest, et Pythonis on täisarvud muutumatud (immutable) objektid.