Python. Удаление объектов из списка при удалении объектов (отрезано от "python")

Модератор: Модераторы разделов

Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Python. Удаление объектов из списка при удалении объектов

Сообщение nadge »

У меня тут еще вопрос возник.

Допустим, есть класс ААА. Один из его методов (назовем ххх) порождает объекты класса ВВВ. Другой метод (назовем ууу) класса ААА периодически (по таймеру) обновляет некоторые переменные объектов класса ВВВ, созданных методом ххх.

Таким образом, в класе ААА должен быть список LLL, содержащий все объекты класса ВВВ, так?

Теперь. Объекты класса ВВВ должны уничтожаться из методов класса ААА и, что самое главное, из собственных методов. Класс ВВВ - это гтк-окно, которое получает сигналы, в частности о закрытии. Так вот, когда к объекту класса ВВВ приходит такой сигнал (т.е. вызывается соответствующий метод), как ему (объекту) удалить самого себя из списка LLL, содержащегося в ААА?


Короче, класс ААА открывает окно (класс ВВВ). И содержит список всех этих окон (объектов). Когда окно закрывается, надо удалить оное из списка и высвободить память.


Как это сделать?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Python. Удаление объектов из списка при удалении объектов

Сообщение Portnov »

iУведомление от модератора

У нас правило: один вопрос - одна тема. Отрезаю.


Вроде ясно, что значит в объектах BBB тоже должна быть ссылка на породивший их объект AAA. Что-то такое:

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

def on_close(self,...):
  self.parent_aaa.bbb_list.delete(self)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Python. Удаление объектов из списка при удалении объектов

Сообщение nadge »

Спасибо, я так и думал. Просто это мне показалось "костыльным" вариантом.
Спасибо сказали: