В Python типы данных делятся на изменяемые (mutable) и неизменяемые (immutable).
Изменяемые типы данных могут быть изменены после создания. При изменении объекта изменяемого типа, сам объект остается тем же, но его содержимое меняется.
Неизменяемые типы данных не могут быть изменены после создания. Любая операция, которая, казалось бы, изменяет объект неизменяемого типа, на самом деле создает новый объект.
Примеры:
| Тип | Изменяемый / Неизменяемый |
|---|---|
int | Неизменяемый |
float | Неизменяемый |
str | Неизменяемый |
bool | Неизменяемый |
tuple | Неизменяемый |
list | Изменяемый |
dict | Изменяемый |
set | Изменяемый |
frozenset | Неизменяемый |
Примеры кода:
Неизменяемый int:
python
Изменяемый list:
python
Различие между ними имеет значение для поведения переменных и передачи аргументов в функции. При передаче изменяемого объекта в функцию, изменения внутри функции будут видны вне ее. При передаче неизменяемого объекта, изменения внутри функции будут создавать новый локальный объект.