SWIG是否支持终结块?

时间:2012-10-19 15:26:54

标签: swig

SWIG支持包含加载模块时执行的代码,如下所示:

%init %{
    init_variables();
%}

最终确定是否也存在相似之处?我找不到任何关于它的文档,也许还有另一种方法可以实现相同的最终结果?

1 个答案:

答案 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!