Главная страница » Python » 41. Неизменяемость
Добро пожаловать на 41-й урок по Python! Сегодня мы обсудим важную концепцию неизменяемости (иммутабельности) в Python. Понимание неизменяемости поможет вам писать более эффективный и безопасный код, а также избежать распространенных ошибок при работе с данными.
Неизменяемость означает, что объект не может быть изменен после его создания. В Python это касается типов данных, таких как строки, числа и кортежи. Когда вы работаете с неизменяемыми объектами, вы фактически создаете новый объект, когда изменяете данные.
В Python есть несколько типов данных, которые являются неизменяемыми:
Числа в Python (как целые, так и с плавающей точкой) являются неизменяемыми типами данных.
Пример неизменяемости чисел
x = 5
print(id(x)) # Вывод: идентификатор объекта
x += 1 # Создается новый объект
print(id(x)) # Вывод: новый идентификатор объекта
# Хотя значение x изменилось, исходное значение 5 осталось неизменным.
Строки в Python также являются неизменяемыми. Когда вы изменяете строку, Python создает новый объект.
Пример неизменяемости строк
s = "hello"
print(id(s)) # Вывод: идентификатор объекта
s = s + " world" # Создается новый объект
print(id(s)) # Вывод: новый идентификатор объекта
# Строка "hello" остается неизменной, и создается новая строка "hello world".
Кортежи — это неизменяемые последовательности. Как и строки, кортежи не могут быть изменены после создания.
Пример неизменяемости кортежей
t = (1, 2, 3)
print(id(t)) # Вывод: идентификатор объекта
# Попытка изменить кортеж вызовет ошибку
# t[0] = 10 # TypeError: 'tuple' object does not support item assignment
# Вы можете создать новый кортеж, объединяя или изменяя существующие
t = t + (4, 5)
print(id(t)) # Вывод: новый идентификатор объекта
Для сравнения, давайте рассмотрим изменяемые типы данных, которые могут быть изменены после их создания:
Списки в Python являются изменяемыми. Вы можете изменять их содержимое, добавлять или удалять элементы.
Пример изменяемости списков
lst = [1, 2, 3]
print(id(lst)) # Вывод: идентификатор объекта
lst.append(4) # Изменяется существующий объект
print(id(lst)) # Идентификатор остается прежним
# Изменение элементов списка
lst[0] = 10
print(lst) # Вывод: [10, 2, 3, 4]
Словари также являются изменяемыми. Вы можете добавлять, удалять или изменять элементы словаря.
Пример изменяемости словарей
d = {'a': 1, 'b': 2}
print(id(d)) # Вывод: идентификатор объекта
d['c'] = 3 # Изменяется существующий объект
print(id(d)) # Идентификатор остается прежним
# Изменение значения
d['a'] = 10
print(d) # Вывод: {'a': 10, 'b': 2, 'c': 3}
Когда вы работаете с неизменяемыми объектами, важно понимать, что любые операции, которые кажутся изменяющими объект, фактически создают новый объект.
def modify_string(s):
s = s + " world"
return s
original_string = "hello"
new_string = modify_string(original_string)
print("Original String:", original_string) # Вывод: hello
print("New String:", new_string) # Вывод: hello world
В этом примере:
original_string
остается неизменным.modify_string
создает новый объект и возвращает его.Сегодня вы узнали о неизменяемости в Python, включая типы данных, такие как числа, строки и кортежи. Вы также узнали о различиях между неизменяемыми и изменяемыми объектами и их влиянии на работу с данными.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.