检测Python模块何时卸载

ico*_*ast 7 python

我有一个模块,它使用ctypes将一些功能从静态库包装到一个类中.模块加载时,它会调用静态库中的初始化函数.卸载模块时(可能是解释器退出时),库中有一个我想要调用的卸载函数.我该如何创建这个钩子?

nos*_*klo 15

使用atexit模块:

import mymodule
import atexit

# call mymodule.unload('param1', 'param2') when the interpreter exits:
atexit.register(mymodule.unload, 'param1', 'param2')
Run Code Online (Sandbox Code Playgroud)

另一个来自文档的简单示例,register用作装饰器:

import atexit

@atexit.register
def goodbye():
    print "You are now leaving the Python sector."
Run Code Online (Sandbox Code Playgroud)