【发布时间】:2019-11-05 12:30:41
【问题描述】:
在一个 jupyter 笔记本中,我想在 python 中定义一个函数,当调用它时,它会执行以下操作:
- 向用户发出警报
- 重启笔记本内核
- 将执行的单元格标记为已完成(即没有星号,
[ ]) - 焦点在下一个单元格
或者作为替代:
- 向用户发出警报
- 重启笔记本内核
- 清除整个笔记本的所有输出
- 焦点再次位于第一个单元格上(就像 F5 重新加载浏览器选项卡一样)。
我试过下面的代码
from IPython.display import display, HTML
def reload():
display(HTML(
'''
<script>
alert('This notebook needs to be restarted!');
IPython.notebook.kernel.restart();
IPython.display.clear_output();
window.location.reload();
</script>
'''
))
reload()
但它给出了一个错误
AttributeError: 'function' object has no attribute 'clear_output'
当我删除线时
IPython.display.clear_output();
然后内核重新启动,但我收到 2(!)个警报,看起来执行下一个单元格。此外,单元格没有被清除,当前单元格的括号中仍然有星号([*])。
如何正确做?
【问题讨论】: