Middle
158
Kuidas on Pythonis muutujad üles ehitatud?
Vastus AI-lt
sobes.tech AI
Pythonis muutujad ei ole andmekonteinerid, vaid pigem märgised või nimed, mis viitavad mälus olevatele objektidele.
Kui määrate väärtuse muutujale, siis te ei kopeeri seda väärtust, vaid loote viite olemasolevale või loodavale objektile.
Põhikonseptsioonid:
- Muuttujanimed: võivad sisaldada tähti (ladina), numbreid ja alakriipsu. Ei või alustada numbriga. On tundlik suur- ja väiketähtede suhtes.
- Objektid: Kõik Pythonis on objektid. Igal objektil on tüüp, väärtus ja identifikaator (aadress mälus).
- Viited: Muutujal on viide objekti identifikaatorile.
Näide:
# Loome int objekti väärtusega 100 ja määrame selle identifikaatoriks 'a'
a = 100
# Muutujale 'b' viitab nüüd sama int objekti väärtusega 100
b = a
# Loome uue int objekti väärtusega 200 ja määrame selle identifikaatoriks 'a'
a = 200
Selles näites, pärast a = 200, viitab muutujale a uus objekt 200, ning muutujale b viitab endiselt objekt 100.
- Dünaamiline tüüpimine: Muutujatüübi määrab see objekt, millele see viitab, ning see võib programmi käigus muutuda:
# Muutujale `x` viitab int objekt
x = 10
# Nüüd viitab `x` str objektile
x = "hello"
-
** Prügikoristus:** Kui objekti juurde ei ole enam viiteid, vabastab Python automaatselt selle mälu, kasutades prügikoristussüsteemi.
-
Muutumatud (immutable) ja muudetavad (mutable) objektid:
- Muutumatud: Numbrid, stringid, tükid. Sellise objekti "muutmisel" luuakse tegelikult uus objekt.
- Muudetavad: Loendid, sõnastikud, kogud. Nende sisu saab muuta ilma uue objekti loomata.
# Muutumatu string
s = "world"
# Luues uue stringi "hello world", `s` viitab nüüd sellele
s = "hello " + s
# Muudetav list
l = [1, 2, 3]
# Muudab olemasoleva listi sisu
l.append(4)
Seega on Python'i muutujad paindlikud ja võimsad tööriistad andmete töötlemiseks, mis põhinevad objektidele viitamisel.