2

SWIG は、次のように、モジュールのロード時に実行されるコードを含めることをサポートしています。

%init %{
    init_variables();
%}

ファイナライズにも似たようなものはありますか?それに関するドキュメントが見つかりません。ファイナライズのために同じことを達成する別の良い方法があるのでしょうか?

4

1 に答える 1

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!
于 2012-10-20T18:00:14.977 に答える