2
呷有包括加载模块时执行代码的支持,如下所示:SWIG是否支持最终化块?
%init %{
init_variables();
%}
有类似的功能也存在终结?我找不到任何文档,也许有另一种好方法来完成相同的事情?
呷有包括加载模块时执行代码的支持,如下所示:SWIG是否支持最终化块?
%init %{
init_variables();
%}
有类似的功能也存在终结?我找不到任何文档,也许有另一种好方法来完成相同的事情?
您可以在%init
期间注册atexit
清理程序。这里的工作示例:
%module sample
%{
#include <stdlib.h>
#include <stdio.h>
void cleanup()
{
printf("cleanup!\n");
}
%}
%init %{
atexit(cleanup);
%}
结果:
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:57:17) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sample
>>> ^Z
cleanup!
伟大的解决方案,谢谢! –
模块通常不卸载。你想做什么? –
每当一个Python脚本退出导入了由SWIG生成的模块时,如果可以运行某种终结代码将会很好。现在,我们必须为我们的API明确添加一个终结方法。 –