Лучше всего никогда не полагаться на сборщик мусора для своевременного сбора объекта, который контролирует ограниченный ресурс.Это может задержать сбор любого конкретного мусора на неопределенный срок.Вы не хотели бы оставлять файл открытым для очистки сборщика мусора, потому что существует ограничение на количество дескрипторов файлов, которые вы можете открыть одновременно.
Бывает, что сборщик мусора Python имеет ссылкуСчетчик и немедленно освободит объекты без ссылок, но это деталь реализации.Если вы используете другую реализацию, такую как PyPy или IronPython, это не применяется.У меня был программный перерыв, когда я переместил его в другую реализацию, потому что я непреднамеренно полагался на подсчет ссылок Python для очистки ресурсов.Кроме того, вы можете столкнуться с ошибками, которые происходят из-за того, что вы случайно создали где-то цикл.
Я не знаю каких-либо лучших практик для виджетов.Я не думал о том, что мне следует их убирать.Если с виджетом связано окно, то это дескриптор ОС, который вы должны теоретически очистить.Обычно реальное окно имеет только GtkWindow, но ваш плагин может создать виджет с окном.Итак, я бы сказал, что в этом конкретном маловероятном случае вы должны теоретически уничтожить виджет.В противном случае, можно уничтожить их вручную, если они вам не нужны, но я бы сказал, не пытайтесь это сделать.