SWIG支持包含加载模块时执行的代码,如下所示:
%init %{
init_variables();
%}
最终确定是否也存在相似之处?我找不到任何关于它的文档,也许还有另一种方法可以实现相同的最终结果?
答案 0 :(得分:4)
您可以在atexit
期间注册%init
清理例程。这是一个工作样本:
%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!