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明確添加一個終結方法。 –