Форум сайта python.su
Добрый день, уважаемые. Помогите, пожалуйста, разрешить следующий вопрос. Удалится ли содержимое списка, если удалить сам список (т.е. обнулить счетчик ссылок на этот список). Приведу пример:
# Имеем класс реализующий точку class Point: def __init__(self, x = 0, y = 0): self.x = x self.y = y # Затем где-нибудь создаем список и добавляем # в него два экземпляра класса Point. someList = [] someList.append(Point(1, 2)) someList.append(Point(3, 4)) # Теперь, насколько я понимаю, у нас имеется ссылка на список # в переменной someList и две ссылки на экземпляры точек в этом списке. # Допустим теперь мы делаем так: someList = "bla-bla-bla" # Вопрос: будут ли после этого доступны для сборщика мусора # экземпляры класса Point, ссылки на которые хранились в списке?
Офлайн
Не доверяете сборщику мусора?
В консоли
>>> class Point: ... def __init__(self, x = 0, y = 0): ... self.x = x ... self.y = y ... def __del__(self): ... print "dying :(", id(self) ... >>> some_list = [Point(1,2), Point(3,4)] >>> some_list = "blal" dying :( 57101128 dying :( 57100744
Called when the instance is about to be destroyed.Т.е __del__ вставлен только для того, чтобы вывести сообщение при “утилизации” сборщиком мусора.
Отредактировано EBFE (Сен. 27, 2012 23:39:18)
Офлайн
Ох не доверяю . Действительно, проверка оказалась проще некуда. Спасибо, EBFE
Офлайн