576*_*76i 4 python python-3.x jupyter-notebook ipywidgets
在 Jupyter notebook 中使用 Python 3.7,下面的代码显示了一个文本输入字段,它触发 handle_submit 函数以打印出一些输出。在这个例子中,输入 40 次重复。
from ipywidgets import widgets
from IPython.display import display
text = widgets.Text()
display(text)
def handle_submit(sender):
print('\n'.join([text.value] * 40 ))
text.on_submit(handle_submit)
Run Code Online (Sandbox Code Playgroud)
运行此代码会显示一个文本框。
如果您在框中输入文本并按 Enter,将运行 handle_submit 函数并打印“结果”。
这可以多次使用,但保留所有旧输出。因此,在多次使用输入字段后,您需要无休止地滚动以获得新结果。
在从 handle_submit 函数打印新输出之前,是否有清除单元格输出的命令?与此示例不同,输出长度不固定,因此解决方案应处理不同大小的输出。
通过创建输出小部件,您可以以与单元格输出相同的方式打印到该小部件。您还可以选择调用clear_output()上下文管理器来清除输出。
我已经对此进行了编码,因此每次提交新输入时都会清除输出,但是没有理由不能挂起按钮来clear_output()手动执行此操作。
from ipywidgets import widgets
from IPython.display import display, clear_output
text = widgets.Text()
display(text)
output = widgets.Output()
display(output)
def handle_submit(sender):
with output:
clear_output()
print('\n'.join([text.value] * 40 ))
text.on_submit(handle_submit)
Run Code Online (Sandbox Code Playgroud)