Sobes.tech
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:

  1. Loobub uus objekt uue väärtusega (kui tüüp ei muutu, näiteks int).
  2. Muutuja x hakkab viitama sellele uuele objektile.
  3. 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.