Форум сайта python.su
Привет всем. Я начал изучать python и столкнулся с одной неточностью. Мне важно понимать или я что-то не так понимаю или ошибка в учебном руководстве.
Вопрос в следующем. Команды y = y * 2 и y *= 2 отличаются тем, что при исполнении первой команды у нас создается новый объект, а при исполнении второй изменяется тот, на который мы ссылаемся.
y = 2 print(id(y)) # 8790392243920 y *= 2 print(id(y)) 8790392243984 # Почему здесь создается новый объект? y = y * 2 print(id(y)) 8790392244112
Отредактировано 3frenky3 (Апрель 6, 2021 10:35:30)
Офлайн
3frenky3кто вам такую глупость сказал? int неизменяемый тип, любые операции меняющие значение приводят к созданию нового объекта. А “*= 2” всеголишь синтаксический сахар ничем кроме записи от “ = y * 2” не отличается.
Вопрос в следующем. Команды y = y * 2 и y *= 2 отличаются тем, что при исполнении первой команды у нас создается новый объект, а при исполнении второй изменяется тот, на который мы ссылаемся.
[code python][/code]
Отредактировано PEHDOM (Апрель 6, 2021 11:39:01)
Офлайн
Спасибо огромное за разъяснения уважаемый, вы мне очень помогли
Офлайн