Почему Python выделяет новую память переменным при каждом новом назначении?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Python выделяет новую память переменным при каждом новом назначении?

Сообщение Anonymous »

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

Код: Выделить всё

>>> a=2
>>> id(a)
13332800
>>> a=a+2    # reassigning allocates new memory
>>> id(a)
13332752
>>> a=[1,2,3,4]
>>> id(a)
139923169899008
>>> a.append(2)  # change takes in place
>>> id(a)
139923169899008
>>> a=a+[3,2]    # this way causes new memory allocation
>>> id(a)
139923169899656
Есть ли способ избежать перераспределения памяти при каждом новом задании?

Подробнее здесь: https://stackoverflow.com/questions/267 ... assignment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»