我正在为 C++ 程序的 swig 接口构建一个 Python 包装器。
我很想知道 Python 对象是否有办法“知道”它是如何被删除的。这个想法很简单,如果垃圾收集器删除了对象,则包装器不会对底层 C++ 对象做任何事情,但如果用户故意删除了对象(``del 对象),那么包装器会检测到该对象并取消引用底层对象,以便它也被删除。
我已经尝试过用谷歌搜索,但找不到任何东西。我发现的唯一一件事是(显然)__del__
被垃圾收集器和del命令调用,并且似乎无法区分是哪个调用它。
希望有人证明我错了!