以下は、test_atexit.py というスクリプトで記述されたコードです。
def exit_function():
print "I am in exit function"
import atexit
atexit.register(exit_function)
print "I am in main function"
python2.4 を使用して関数を実行すると、exit_function が呼び出されます
$python2.4 test_atexit.py
I am in main function
I am in exit function
ipython を使用して同じものを実行すると、exit_function が呼び出されません
$ ipython
In [1]: %run test_atexit.py
I am in main function
In [2]:
Ipythonを使用してスクリプトを実行するときにexit_functionが呼び出されない理由と、ipythonでexit_functionを呼び出す方法