获取对IPython中当前InteractiveShell实例的引用(尝试挂钩%exit)

时间:2012-01-02 00:08:04

标签: ipython

我想在IPython中创建一个钩子,当我执行Cntl-D,%Exit,%Quit或%exit和%quit并确认时,它会运行。

我的动机是,我希望在后台无限期地运行一个在IPython中运行的线程,直到我按下Cntl-D退出,然后我想告诉该线程退出。我想我将使用钩子向我的后台线程发送信号。

我认为这样做的一种方法是包装IPython :: iplib :: InteractiveShell :: exit。这可能吗?有没有更好的方法来做我想做的事情?感谢

1 个答案:

答案 0 :(得分:2)

告诉线程退出的最简单方法可能是注册atexit处理程序。这是一个标准的Python,不依赖于IPython。

如果您想要引用InteratctiveShell对象,请在IPython 0.11+中使用get_ipython()。不过,我认为你使用的是旧版本;试试_ip