Простой вопрос про память

 
0
 
Python
ava
spirits25 | 29.02.2012, 16:37
Есть классы A, A2 и B. Есть объекты c и d.
В начале
c = A()
d = B()
d.setObject(c)

Затем такой код
c = A2()
d.setObject(c)

Вопрос: очистится ли (сборщиком мусора) память за первым объектом "c" (созданным классом A()), ведь после помещения в "с" другого объекта (А2) на объект класса А больше ссылок нет? можно так делать, не боясь, что объект класса A будет висеть где-то в памяти?
Kommentare (2)
ava
Daevaorn | 29.02.2012, 16:38 #
Цитата (spirits25 @ 29.2.2012, 16:37 findReferencedText)
Вопрос: очистится ли (сборщиком мусора) память за первым объектом "c" (созданным классом A()), ведь после помещения в "с" другого объекта (А2) на объект класса А больше ссылок нет? можно так делать, не боясь, что объект класса A будет висеть где-то в памяти?


Тут у вас ошибка в логике. Если в методе setObject объект, на который ссылается `c` куда-то сохраняется, то после ссылок уже как минимум 2.
ava
spirits25 | 01.03.2012, 08:27 #
Цитата (Daevaorn @ 29.2.2012, 16:38 findReferencedText)
Тут у вас ошибка в логике. Если в методе setObject объект, на который ссылается `c` куда-то сохраняется, то после ссылок уже как минимум 2.

Но ведь он заменяется потом d.setObject©, где с уже второй объект?
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden