Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to know if object gets deleted in Python

Tags:

python

pyside

I have an object in the heap and a reference to it. There are certain circumstances in which the object gets deleted but the reference that points to its location doesn't know that. How can I check if there is real data in the heap?

For example:

from PySide import *
a = QProgressBar()
b = QProgressBar()
self.setIndexWidget(index,a)
self.setIndexWidget(index,b)

Then the a object gets deleted but print(a) returns a valid address. However if you try a.value() - runtime error occurs (C++ object already deleted).

a is None returns False.

like image 754
GeneralFailure Avatar asked Jul 04 '12 11:07

GeneralFailure


1 Answers

For the PySide objects you'll need the shiboken module to perform object queries.

Visit the shiboken module documention:

import shiboken

print shiboken.isValid(a)
like image 104
arjenve Avatar answered Sep 28 '22 02:09

arjenve