Найти - Пользователи
Полная версия: Удаление списка и его содержимого
Начало » Python для новичков » Удаление списка и его содержимого
1
bav
Добрый день, уважаемые. Помогите, пожалуйста, разрешить следующий вопрос. Удалится ли содержимое списка, если удалить сам список (т.е. обнулить счетчик ссылок на этот список). Приведу пример:
# Имеем класс реализующий точку
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, ссылки на которые хранились в списке?
EBFE
Не доверяете сборщику мусора?
В консоли
>>> 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

Насчет __del__
http://docs.python.org/reference/datamodel.html#object.__del__
Called when the instance is about to be destroyed.
Т.е __del__ вставлен только для того, чтобы вывести сообщение при “утилизации” сборщиком мусора.
bav
Ох не доверяю . Действительно, проверка оказалась проще некуда. Спасибо, EBFE
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