Найти - Пользователи
Полная версия: Вопрос связанный с работой объектов
Начало » Python для новичков » Вопрос связанный с работой объектов
1
3frenky3
Привет всем. Я начал изучать 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

Возможно ответ состоит в том, что числа неизменяемые объекты?
PEHDOM
3frenky3
Вопрос в следующем. Команды y = y * 2 и y *= 2 отличаются тем, что при исполнении первой команды у нас создается новый объект, а при исполнении второй изменяется тот, на который мы ссылаемся.
кто вам такую глупость сказал? int неизменяемый тип, любые операции меняющие значение приводят к созданию нового объекта. А “*= 2” всеголишь синтаксический сахар ничем кроме записи от “ = y * 2” не отличается.
3frenky3
Спасибо огромное за разъяснения уважаемый, вы мне очень помогли
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB