输出小部件:标准输出&输出错误

输出小部件:标准输出&输出错误#

import ipywidgets as widgets

我们还可以使用 append_stdoutappend_stderrappend_display_data 等便利方法直接将输出附加到输出部件。

from IPython.display import YouTubeVideo
out = widgets.Output(layout={'border': '1px solid black'})
out.append_stdout('Output appended with append_stdout')
out.append_display_data(YouTubeVideo('eWzY2nGfkXk'))
out

clear_output 支持关键字参数 wait。将其设置为 True 时,部件内容不会立即清除。相反,它们会在下一次部件接收到要显示的内容时被清除。在替换输出部件中的内容时,这很有用:它允许更平滑的过渡,避免了调用 clear_output 后部件突然调整大小的情况。

最后,我们可以使用输出部件通过 capture 装饰器捕获函数产生的所有输出。

out = widgets.Output(layout={'border': '1px solid black'})

@out.capture()
def function_with_captured_output():
    print('This goes into the output widget')
    raise Exception('As does this')
    
function_with_captured_output()
out
print(out.capture.__doc__)
Decorator to capture the stdout and stderr of a function.

        Parameters
        ----------

        clear_output: bool
            If True, clear the content of the output widget at every
            new function call. Default: False

        wait: bool
            If True, wait to clear the output until new output is
            available to replace it. This is only used if clear_output
            is also True.
            Default: False

out.capture 支持关键字参数 clear_output。将其设置为 True 将在每次调用函数时清除输出部件,这样你只会看到最后一次调用的输出。将 clear_output 设置为 True 时,你还可以传递一个 wait=True 参数,以仅在新输出可用时清除输出。当然,你也可以随时手动清除输出。

# out.clear_output()