Почему переменные данных в Python неизменяемы?

#python

#python

Вопрос:

Я использую C в течение нескольких лет, и теперь я собираюсь изучать Python, чтобы создавать программы, работающие на серверах. Только что я прочитал с веб-сайта, что переменные int и float в Python неизменяемы, операция присваивания означает, что создается новый объект. Я чувствую себя сбитым с толку из-за того, почему Python разработан таким образом. И не приведет ли это к некоторым проблемам с эффективностью работы?
Английский не является моим родным языком, я все еще изучаю английский, так что, возможно, что-то не так. Я действительно чувствую себя виноватым из-за этого.

примеры кодов…

x = 1
id (x)
x = 2
id (x)
x = 2
id (x)

Комментарии:

1. Что вы подразумеваете под «переменными данных» на самом деле? атрибуты? или словарные значения? Если это одна из них, они обе изменяемы

2. мы готовы вам помочь. не могли бы вы, пожалуйста, объяснить вашу проблему вместе с вашим кодом?

3. Пожалуйста, дайте ссылку на веб-сайт или дополнительные пояснения к тому, что вы прочитали

4. Присваивание не создает новый объект. Это создает (новую) ссылку, также вызывающую ‘name’ для объекта правой стороны. Является ли этот объект новым или нет, зависит от выражения правой стороны.

5. Пусть вас не смущают идентификаторы, они подлежат оптимизации в интерпретаторе CPython.

Ответ №1:

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

Приведенная ниже ссылка содержит очень хорошее объяснение вашего вопроса с примерами.

https://medium.com/broken-window/many-names-one-memory-address-122f78734cb6

Комментарии:

1. Это именно то, чего я хочу. Я понял. Спасибо. 😀