В Python строки являются объектами с неизменяемым состоянием (immutable), что означает:
Строка неизменяемая. Но если у меня есть переменная, я присвоил ей строку, а на следующей строке переприсваиваю другую строку — она же не падает. Как это объяснить?
В Python строки являются объектами с неизменяемым состоянием (immutable), что означает:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Python строки являются объектами с неизменяемым состоянием (immutable), что означает:
- После создания строка не может быть изменена. Любые операции, которые кажутся изменением строки, на самом деле создают новую строку.
- Это обеспечивает безопасность и предсказуемость при работе со строками, особенно при использовании их в качестве ключей в словарях или элементов множества.
Пример:
s = "hello"
s = s + " world" # создаётся новая строка, исходная 'hello' не меняется
print(s) # 'hello world'
Здесь s + " world" не изменяет исходную строку, а создаёт новую.