Не могу толком понять в python тему неизменяемость. К примеру: a = 5 a = 10 Вывод 10, т.е. переменная a уже не 5 а 10, как-бы изменилась. Или здесь что-то другое имеется ввиду?
Ответ
В среде Python-программистов есть такое изречение "В python-е все есть объект".
Когда программист присваивает что-то в переменную, то он присваивает не само значение, а ссылку на объект. В вашем примере сначала создается объект со значением 5, берется его адрес(грубо, очень грубо) и присваивается переменной a. Затем создается объект в котором хранится 10, берется его адрес и этот адрес присваивается в a. Далее, объект со значением 5 живет до тех пор, пока его garbage collector не решит отправить к праотцам.
Еще раз, все операции в Python-е ведутся относительно объектов. Когда говорят о mutable или immutable то имееют ввиду свойства объектов!
Возможно Вам просто непонятна концепция "указатель" и поэтому приведу аналогию из мира людей:
Когда Вы берете в руки смартфон и звоните к Ане, чтобы поговорить, то вы говорите не с номером телефона и не со смартфоном, а с Аней. Номер телефона всего лишь "указатель" на Аню. А смартфон это переменная, которая хранит указатель на Аню. И чтобы получить доступ к Ане вы используете переменнную в которой хранится номер Ани и только тогда вы получаете доступ к ней.
Комментариев нет:
Отправить комментарий