IPython display对象无法多次执行update()更新的问题咨询
解决IPython Display对象多次更新失效的问题
你的代码逻辑本身没问题,出现第二次更新不生效的情况大概率是IPython环境(比如旧版本的Jupyter Notebook/Lab)的渲染机制导致的,或是直接传递字符串给update时前端未正确捕获更新事件。可以试试下面两种可靠的解决方法:
方法一:确保更新时传递可显示对象
把要更新的内容用display包装后再传给update,强制触发渲染:
from IPython.display import display from time import sleep dis = display('1', display_id=True) sleep(1) dis.update(display('2', display_id=False)) sleep(1) dis.update(display('3', display_id=False))
方法二:使用clear_output配合重绘
如果上面的方法还是不行,可以用clear_output清除当前输出后重新显示,wait=True参数可避免闪烁:
from IPython.display import display, clear_output from time import sleep display('1') sleep(1) clear_output(wait=True) display('2') sleep(1) clear_output(wait=True) display('3')
另外,也可以检查并更新你的IPython和Jupyter相关包到最新版本,这类渲染问题在新版本中通常已被修复:
pip install --upgrade ipython jupyterlab
内容的提问来源于stack exchange,提问作者chaosink
相关产品推荐
相关产品推荐

