使用输出部件调试回调中的错误

使用输出部件调试回调中的错误#

import ipywidgets as widgets

在某些平台上,比如 JupyterLab,由部件回调生成的输出(例如,附加到部件特质的 .observe 方法或按钮部件的 .on_click 方法上的函数)不会在任何地方显示。即使在其他平台上,也不明确这些输出应该出现在哪个单元格中。这可能使得调试回调函数中的错误更具挑战性。

一个有效访问部件回调输出的工具是使用输出部件的捕获方法装饰回调函数。然后你可以在新的单元格中显示该部件以查看回调输出。

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

@debug_view.capture(clear_output=True)
def bad_callback(event):
    print('This is about to explode')
    return 1.0 / 0.0

button = widgets.Button(
    description='click me to raise an exception',
    layout={'width': '300px'}
)
button.on_click(bad_callback)
button
debug_view