如何使用python代码在jupyter笔记本中保存ipython小部件的状态

时间:2019-12-01 06:12:57

标签: python jupyter-notebook ipython jupyter ipywidgets

我在jupyter笔记本中使用ipython小部件。现在,当内核重新启动时,小部件状态会丢失,并显示一条消息:

“无法显示Jupyter窗口小部件,因为找不到窗口小部件状态。如果存储窗口小部件的内核不再可用,或者窗口小部件状态未保存在笔记本中,则可能发生这种情况。您可能可以通过运行适当的单元格来创建小部件”

因此,当用户在内核重启后重新打开笔记本时,他在笔记本中找不到先前拥有的小部件。我们要保存所有小部件的状态,以便在内核重新启动后,当用户重新打开笔记本时,他发现他的所有小部件都完好无损。

PS:有一个“保存小部件状态”菜单选项可以执行此操作,但这是一个手动步骤,我们希望通过python代码保存小部件状态。

1 个答案:

答案 0 :(得分:0)

这有点骇人听闻,可能会带来意想不到的后果。在您通过交互方式调用的每个函数上,都可以将调用添加到以下函数:

namespace np{
    class myclass{
        //...
    };
    void  foo(const myclass&m){
        cout<<"inside";
    }

}
void foo(np::myclass &m){
    cout<<"global";
}

int main()
{
   np::myclass m;
   using np::foo;
   foo(m);
} 

它将保存您的笔记本(请注意),并随其保存小部件状态。

但是,请注意,当您运行具有实际小部件的单元格时,它将不遵守保存状态。

这不是特定于上述功能的;如果使用保存小部件状态菜单选项,也会发生同样的情况。

所以...我不确定该选项是否有用。它将保存状态以向您显示上次笔记本的状态,但是您将无法在下一次运行时实际重用工单状态(嗯,您可以记下值并重新输入它们,但是我不要以为那是你想要的...)