jupyter下拉窗口小部件触发操作

jupyter下拉窗口小部件触发操作,jupyter,ipywidgets,Jupyter,Ipywidgets,我有一个看似简单的意图,只是在jupyter笔记本中有一个下拉小部件来触发一些简单的动作。这是一种工作,但下面的脚本实际上似乎触发了事件三次,我做错了什么 将IPyWidget作为小部件导入 从IPython.display导入显示中,清除\u输出 vardict=[“var1”,“var2”] 选择_variable=widgets.下拉列表( 选项=vardict, 值=vardict[0], description='Select variable:', 禁用=错误, 按钮样式=“” )

我有一个看似简单的意图,只是在jupyter笔记本中有一个下拉小部件来触发一些简单的动作。这是一种工作,但下面的脚本实际上似乎触发了事件三次,我做错了什么

将IPyWidget作为小部件导入
从IPython.display导入显示中,清除\u输出
vardict=[“var1”,“var2”]
选择_variable=widgets.下拉列表(
选项=vardict,
值=vardict[0],
description='Select variable:',
禁用=错误,
按钮样式=“”
)
def get_和_图(b):
清除输出
打印(选择变量值)
显示(选择变量)
选择变量。观察(获取变量和绘图)
当我从下拉列表中选择项时,输出如下

var1
var2
var2
而且每次选择都会变长


我想得到的是一种每次选择只触发一次操作(打印或其他)的方法,我如何实现这一点

您需要指定您正在倾听的特征。现在,您正在收听所有的特质。 当在下拉列表中选择一个项目时,一些隐私特征会在引擎盖下发生变化,从而触发回调

为了避免这种情况,请使用
名称
kwarg(可以是特征名称,也可以是特征名称列表)指定您想要收听的特征


还要注意,在上述代码中,
clear\u output
应该是
clear\u output()
select_variable.observe(get_and_plot, names='value')