Насильственное освобождение объектов

Вы можете принудительно освободить объекты, даже если их refcount не равен 0 в Python 2 и 3.

Обе версии используют ctypes модуль , чтобы сделать это.

ВНИМАНИЕ: делать это оставит вашу среду Python неустойчивы и склонны к врезаться без TRACEBACK! Использование этого метода также может создать проблемы с безопасностью (весьма маловероятно). Только освобождать объекты, которые, вы уверены, вы никогда больше не будете ссылаться. Когда-либо.

import ctypes deallocated = 12345 ctypes.pythonapi._Py_Dealloc (ctypes.py_object (deallocated)) импорт ctypes, sys deallocated = 12345 (ctypes.c_char * sys.getsizeof (deallocated)). from_address (id (deallocated)) [: 4] = '\ x00' * 4

После запуска любая ссылка на теперь освобожденный объект приведет к тому, что Python вызовет неопределенное поведение или произойдет сбой - без обратной трассировки. Вероятно, была причина, почему сборщик мусора не удалил этот объект ...

Если вы не освободить None , Вы получаете специальное сообщение - Fatal Python error: deallocating None , прежде чем врезаться.