我使用的C库有一些内存问题我发现,有时它过早地减少了引用计数,从而导致segfaults,并通过保留一个对象列表来扩大引用计数来设法解决这个问题另一方面,我还发现了引用计数过高的具体情况。从Python代码中,有没有办法通过有目的地减少引用计数来解决这些情况?
我知道这是一种黑客行为,绝不是干净的代码或任何东西,但我必须要处理好Bug C库,看起来这比C代码中的问题更容易解决(幸运的是它是开源的),修复它,然后在我必须支持的所有平台上重新编译它。

最佳答案

通过ctypes使用Py_DecRef

import ctypes

_decref = ctypes.pythonapi.Py_DecRef
_decref.argtypes = [ctypes.py_object]
_decref.restype = None

_decref(a_python_object)

关于python - 有什么方法可以手动减少Python中对象的引用计数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17732816/

10-10 01:34