How to know if object gets deleted in Python

前端 未结 3 1558
没有蜡笔的小新
没有蜡笔的小新 2020-12-11 06:20

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 k

相关标签:
3条回答
  • 2020-12-11 06:32

    It is explicitly mentioned in the documentation when an object takes the responsibility for the deletion of another object. In your example, you can see this in the Qt doc :

    If index widget A is replaced with index widget B, index widget A will be deleted.

    0 讨论(0)
  • 2020-12-11 06:36

    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)
    
    0 讨论(0)
  • 2020-12-11 06:55

    use sip module, read more about sip here

    import sip
    
    a = QProgressBar()
    sip.isdeleted(a)
    False
    
    sip.delete(a)
    a
    <PyQt4.QtCore.QObject object at 0x017CCA98>
    
    sip.isdeleted(a)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    RuntimeError: underlying C/C++ object has been deleted
    
    0 讨论(0)
提交回复
热议问题