Cum sunt structurate variabilele în Python?
sobes.tech AI
Răspuns de la AI
Variabilele în Python nu sunt containere de date, ci mai degrabă etichete sau nume care fac referire la obiecte în memorie.
Când atribui o valoare unei variabile, nu copiezi acea valoare, ci creezi o referință la un obiect existent sau care se creează.
Concepte de bază:
- Numele variabilelor: Pot conține litere (latine), cifre și underscore. Nu pot începe cu o cifră. Sunt sensibile la majuscule și minuscule.
- Obiecte: Totul în Python este un obiect. Fiecare obiect are un tip, o valoare și un identificator (adresa în memorie).
- Referințe: Variabila stochează o referință la identificatorul obiectului.
Exemplu:
# Creăm un obiect int cu valoarea 100 și atribuim identificatorul său lui 'a'
a = 100
# Variabila 'b' face acum referire la același obiect int cu valoarea 100
b = a
# Creăm un nou obiect int cu valoarea 200 și atribuim identificatorul său lui 'a'
a = 200
În acest exemplu, după a = 200, variabila a face referire la noul obiect 200, iar variabila b face în continuare referire la obiectul 100.
- Tipizare dinamică: Tipul variabilei este determinat de tipul obiectului la care face referire și se poate schimba în timpul execuției programului.
# Variabila 'x' face referire la un obiect int
x = 10
# Acum variabila 'x' face referire la un obiect str
x = "hello"
-
Colectarea gunoiului: Când nu mai există referințe către un obiect, Python eliberează automat memoria ocupată de acel obiect prin mecanismul de colectare a gunoiului.
-
Obiecte imutabile (immutable) vs. mutabile (mutable):
- Imutabile: Numere, șiruri, tuple. Încercarea de a "modifica" un astfel de obiect, creează de fapt un nou obiect.
- Mutabile: Liste, dicționare, mulțimi. Conținutul lor poate fi modificat fără a crea un nou obiect.
# Obiect string imutabil
s = "world"
# Se creează un nou obiect string "hello world", 's' face referire la el
s = "hello " + s
# Obiect list mutabil
l = [1, 2, 3]
# Se modifică conținutul obiectului list
l.append(4)
Astfel, variabilele în Python sunt instrumente flexibile și puternice pentru lucrul cu date, bazate pe conceptul de referințe la obiecte.