Python ipywidgets.VBox不显示函数的一部分

Python ipywidgets.VBox不显示函数的一部分,python,ipython,ipywidgets,Python,Ipython,Ipywidgets,我尝试使用ipywidgets创建一个交互式仪表板。(ipywidgets版本7.5.0,python版本3.7.2) 在一批代码中,widgets.VBox()会自动显示。但是,一旦我将语句外包给函数,widgets.VBox()就不会显示,除非我显式地将其包装到display()语句中。下面是一段简单的代码。它在顶部显示滑块,在底部显示所选次数5 import ipywidgets as widgets from IPython.display import display def fa(

我尝试使用ipywidgets创建一个交互式仪表板。(ipywidgets版本7.5.0,python版本3.7.2)

在一批代码中,
widgets.VBox()
会自动显示。但是,一旦我将语句外包给函数,
widgets.VBox()
就不会显示,除非我显式地将其包装到
display()
语句中。下面是一段简单的代码。它在顶部显示滑块,在底部显示所选次数5

import ipywidgets as widgets
from IPython.display import display

def fa(a,b):
    display(a*b)

a = widgets.IntSlider(10)
out = widgets.interactive_output(fa,{'a':a,'b':widgets.fixed(5)})
widgets.VBox([a,out])
将VBox放入输出函数后,将不会显示任何内容,甚至不会显示错误消息:

def fa(a,b):
    display(a*b)

def db(a,b):
   widgets.VBox([a,b])

a = widgets.IntSlider(10)
out = widgets.interactive_output(fa,{'a':a,'b':widgets.fixed(5)})
db(a,out)
但是,一旦我将db()函数中的
widgets.VBox([a,b])
替换为
display(widgets.VBox([a,b]))
一切都恢复正常


抱歉,这可能是一个基本问题,但这种行为背后的系统是什么?

如果您在笔记本电脑中工作,默认行为是将任何单元格的最后一行打印/显示到下面的输出空间。因此,您的第一个代码片段最后一行的
widgets.VBox([a,out])
实际上是伪装的
display(widgets.VBox([a,out])

谢谢,这就解释了这一点。很高兴知道。