有没有办法手动减少Python中对象的引用计数?

Cla*_*diu 1 c python reference reference-counting

我正在使用一个存在一些内存问题的C库.我已经确定有时它会过早地减少引用计数,导致段错误,并设法通过保持对象列表来扩大引用计数来解决这个问题.另一方面,我还确定了引用计数过高的特定情况.有没有办法解决这些情况,从Python代码,有目的地减少引用计数?

我知道这是hackish,绝不是干净的代码或任何东西,但我必须以某种方式处理有缺陷的C库,看起来这可能比找出C代码中的问题更容易(幸运的是它是开放的) -source),修复它,然后在我必须支持的所有平台上重新编译它.

cgo*_*lke 8

通过ctypes 使用Py_DecRef:

import ctypes

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

_decref(a_python_object)
Run Code Online (Sandbox Code Playgroud)