我正在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
没有出现。
有人知道为什么它不能按我预期的那样工作吗?
答案 0 :(得分:0)
答案是jupyter/help的minrk,widgets
仅在显示时显示在页面上,可使用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_1
和widget_2
将会出现。