Elementor Header #8

31. Неизменяемость примитивных типов

Добро пожаловать на тридцать первый урок по Python! Сегодня мы обсудим неизменяемость (иммутабельность) примитивных типов данных в Python. Понимание этой концепции поможет вам избежать ошибок и писать более эффективный код.

Что такое неизменяемость?

Неизменяемость означает, что объект не может быть изменен после его создания. Если вы пытаетесь изменить неизменяемый объект, вместо изменения самого объекта будет создан новый объект с новым значением. В Python многие примитивные типы данных являются неизменяемыми.

Примитивные неизменяемые типы данных

1. Целые числа (int)

2. Числа с плавающей точкой (float)

3. Комплексные числа (complex)

4. Строки (str)

5. Кортежи (tuple)

6. Булевы значения (bool)

Примеры неизменяемости

Пример 1: Целые числа

				
					a = 10
print(id(a))  # Выводит уникальный идентификатор объекта a

a = 20
print(id(a))  # Выводит новый идентификатор, так как a теперь указывает на другой объект

				
			

Пример 2: Строки

				
					s = "hello"
print(id(s))  # Уникальный идентификатор объекта s

s = s + " world"
print(id(s))  # Новый идентификатор, так как s теперь указывает на новый объект

				
			

Пример 3: Кортежи

				
					t = (1, 2, 3)
print(id(t))  # Уникальный идентификатор объекта t

t = t + (4, 5)
print(id(t))  # Новый идентификатор, так как t теперь указывает на новый объект

				
			

Последствия неизменяемости

Безопасность многопоточности

Неизменяемые объекты безопасны для использования в многопоточных программах, так как они не могут быть изменены после создания.

Удобство кэширования

Из-за неизменяемости некоторые объекты могут быть кэшированы, что улучшает производительность программы.

Изменяемые типы данных

В отличие от неизменяемых типов данных, изменяемые типы данных могут быть изменены после создания.

Примеры изменяемых типов данных

Списки (lists)

				
					lst = [1, 2, 3]
print(id(lst))  # Уникальный идентификатор объекта lst

lst.append(4)
print(id(lst))  # Идентификатор остается тем же, так как список изменяем

				
			

Словари (dictionaries)

				
					d = {"key1": "value1"}
print(id(d))  # Уникальный идентификатор объекта d

d["key2"] = "value2"
print(id(d))  # Идентификатор остается тем же, так как словарь изменяем

				
			

Заключение

Сегодня вы узнали о неизменяемости примитивных типов данных в Python и о том, как это влияет на работу с данными. Неизменяемость позволяет избежать множества ошибок и делает ваш код более безопасным и эффективным.

logo