如何覆盖 Jupyter 输出小部件打印的字符串?
例如,我知道如何使用简单的print
语句来做到这一点:
from IPython.display import display, clear_output
fruits = ["apple", "orange", "kiwi"]
for fruit in fruits:
clear_output()
print(f"Do you like {fruit}s?")
产生我所期望的:字符串为每个 new 打印一次fruit
,覆盖前一个字符串。在我的示例中,最后打印的语句是Do you like kiwis?
.
但我需要使用输出小部件而不是打印语句来做到这一点。我试过了:
import ipywidgets as widgets
out = widgets.Output()
for fruit in fruits:
out.clear_output()
out.append_stdout(f"Do you like {fruit}s?")
out
我得到:Do you like apples?Do you like oranges?Do you like kiwis?
,这不是我想要的!
out.clear_output()
我也尝试在之后放置append_stdout
,我得到一个空行。在这种情况下,似乎每个字符串在打印新字符串之前实际上都被取消了,而且最后一个字符串也被取消了!
我很感激任何建议!
最后说明:这个问题是另一个问题的极简示例,尚未收到答案。如果您需要更多上下文,请随时阅读该问题!