必须触发对使用创建的变量的最后一个引用的销毁吗外国金融机构()从Python?

2024-04-25 10:18:52 发布

您现在位置:Python中文网/ 问答频道 /正文

读入Python CFFI documentation

The interface is based on LuaJIT’s FFI (...)

阅读LuaJIT website(关于ffi.gc()):

This function allows safe integration of unmanaged resources into the automatic memory management of the LuaJIT garbage collector. Typical usage:

local p = ffi.gc(ffi.C.malloc(n), ffi.C.free)
...
p = nil -- Last reference to p is gone.
-- GC will eventually run finalizer: ffi.C.free(p)

因此,使用Python CFFI,您是否必须通过将变量设置为(即)ffi.NULL来触发对使用ffi.gc(=需要一个特殊函数进行释放,因为它的某些部分是动态分配的)实例化的变量的最后一个引用的销毁?你知道吗


Tags: ofthefreeisondocumentationwebsitecffi
1条回答
网友
1楼 · 发布于 2024-04-25 10:18:52

Python的设计使所有对象在没有更多的引用时(或之后不久)都被垃圾收集,就像任何其他垃圾收集语言(包括Lua)一样。显式设置p = None(或del p)的技巧只会确保这个局部变量p不会使对象保持活动状态。例如,如果它是这个函数中最后做的事情之一,那么它是没有意义的(除非是特殊情况)。你不需要它,就像你需要它释放,比如说,一个包含常规字符串对象的变量一样。你知道吗

相关问题 更多 >

    热门问题