Jupyter笔记本小部件。放入try和except块时按钮不显示

时间:2018-10-02 15:23:35

标签: python jupyter-notebook

我正在Windows和Jupyter笔记本上工作。我试图在Jupyter单元中执行尝试并除块,并在其中插入一些widgets.Button,但它不起作用。 我通过以下代码简化了这种情况:

import ipywidgets as widgets

def widget(description):
    button = widgets.Button(description=description,layout={'width': '300px'})
    return button

try:
    print("Before widget_1")
    widget_1 = widget(description='Browser One')
    widget_1
    print("After widget_1")
except:
    pass

widget_2 = widget(description='Browser Two')
widget_2

执行Jupyter单元后,它将打印" Before widget_1""After widget_1",然后将显示widget_2

Browser Two

但是,widget_1没有出现。

有人知道为什么它不能按我预期的那样工作吗?

1 个答案:

答案 0 :(得分:0)

答案是jupyter/helpminrkwidgets仅在显示时显示在页面上,可使用display(widget)

widget_2之所以显示在这里,是因为它是单元格中的最后一条语句,IPython将其解释为该单元格的“结果”,因此它会自动显示。

如果将上面代码的try/except块更改为以下内容:

try:
    print("Before widget_1")
    widget_1 = widget(description='Browser One')
    display(widget_1)
    print("After widget_1")
except:
    pass

该代码将按预期工作。这意味着widget_1widget_2将会出现。