Зарегистрируйтесь, чтобы продолжить обучение

Неизменяемость Основы Python

В Python некоторые типы данных называются неизменяемыми (или имутабельными). Это значит, что после создания их содержимое нельзя изменить. Самые важные примитивные типы, которые являются неизменяемыми:

  • int (целые числа),
  • float (вещественные числа),
  • str (строки),
  • bool (булевы значения).

Рассмотрим это на примере строк.

Методы строк не меняют оригинал

Когда мы вызываем метод у строки, кажется, что мы «меняем» строку, например, переводим в верхний регистр:

text = 'hexlet'
text.upper()
print(text)  # => hexlet

На самом деле метод upper() возвращает новую строку в верхнем регистре, а оригинальная строка text остаётся прежней. Вот так будет правильно:

text = 'hexlet'
new_text = text.upper()
print(new_text)  # => HEXLET

Если вы не сохраните результат метода в новую переменную, вы его просто потеряете.

Это касается и других методов:

text = '   hi   '
cleaned = text.strip()
print(cleaned)  # => 'hi', результат не содержит пробелов
print(text)     # => '   hi   ', строка не изменилась, она содержит пробелы

Метод strip() вернул новую строку без пробелов, но сам text не изменился.

Методы не изменяют оригинальную строку, потому что строки не могут быть изменены после создания. Это решение в языке Python принято специально, и у него есть ряд плюсов:

  • Повышенная надёжность: никто случайно не изменит значение
  • Упрощение работы в многопоточном коде
  • Оптимизация производительности: Python может переиспользовать одинаковые строки в памяти, экономя ресурсы

Позже вы увидите, что изменяемость и неизменяемость — важные свойства, особенно при передаче данных в функции и работе с коллекциями.

Открыть доступ

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

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff