Чӣ гуна тағйирёбандаҳо дар Python сохта шудаанд?
sobes.tech AI
Ҷавоб аз AI
Променливите в Python не са контейнери с данни, а по-скоро етикети или имена, които сочат към обекти в паметта.
Когато присвоявате стойност на променлива, вие не копирате тази стойност, а създавате препратка към съществуващ или създаван обект.
Основни концепции:
- Имена на променливи: Могат да съдържат букви (латиница), цифри и символ подчертаване. Не могат да започват с цифра. Чувствителни са към регистъра.
- Обекти: Всичко в Python е обект. Всеки обект има тип, стойност и идентификатор (адрес в паметта).
- Препратки: Променливата съхранява препратка към идентификатора на обекта.
Пример:
# Създаваме обект int със стойност 100 и присвояваме идентификатора му на 'a'
a = 100
# Променливата 'b' сега сочи към същия обект int със стойност 100
b = a
# Създаваме нов обект int със стойност 200 и присвояваме идентификатора му на 'a'
a = 200
В този пример, след a = 200, променливата a сочи към новия обект 200, а променливата b все още сочи към обекта 100.
- Динамично типизиране: Типът на променливата се определя от типа на обекта, към който сочи, и може да се променя по време на изпълнение на програмата.
# Променливата 'x' сочи към обект int
x = 10
# Сега променливата 'x' сочи към обект str
x = "hello"
-
Събиране на боклук: Когато към обект няма повече препратки, Python автоматично освобождава паметта, заемана от този обект, чрез механизма за събиране на боклук.
-
Немодифицирани (immutable) срещу Модифицируеми (mutable) обекти:
- Немодифицирани: Числа, низове, кортежи. При опит да "промените" такъв обект, всъщност се създава нов обект.
- Модифицирани: Списъци, речници, множества. Техните съдържания могат да се променят без създаване на нов обект.
# Немодифициран обект str
s = "world"
# Създава се нов обект str "hello world", 's' сега сочи към него
s = "hello " + s
# Модифициран обект list
l = [1, 2, 3]
# Съдържанието на съществуващия обект list се променя
l.append(4)
По този начин, променливите в Python са гъвкави и мощни инструменти за работа с данни, базирани на концепцията за препратки към обекти.