ipywidgets.VBox 没有显示一次功能的一部分

怀旧

我尝试使用 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)

但是一旦我将widgets.VBox([a,b])db() 函数替换为display(widgets.VBox([a,b]))一切都恢复正常。

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

ac24

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章