【问题标题】:jupyter dropdown widget trigger actionjupyter 下拉小部件触发操作
【发布时间】:2016-12-07 13:02:46
【问题描述】:

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

import ipywidgets as widgets
from IPython.display import display, clear_output
vardict = ["var1","var2"]
select_variable = widgets.Dropdown(
    options=vardict,
    value=vardict[0],
    description='Select variable:',
    disabled=False,
    button_style=''
)
def get_and_plot(b):
    clear_output
    print(select_variable.value)

display(select_variable)
select_variable.observe(get_and_plot)

当我从下拉列表中选择项目时的输出类似于

var1
var2
var2

每次选择都会变长。

我想要的是一种每次选择仅触发一次操作(打印或其他)的方法,我该如何实现?

【问题讨论】:

  • 还要注意上面代码中的clear_output应该是clear_output()

标签: jupyter ipywidgets


【解决方案1】:

您需要指定您正在听哪个 trait。现在您正在聆听所有特征。 当在下拉列表中选择一个项目时,一些私有特征正在被更改,这会触发回调。

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

select_variable.observe(get_and_plot, names='value')

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2018-01-27
    • 2011-03-06
    • 2018-07-02
    • 2015-12-12
    • 2011-12-05
    • 2011-09-16
    • 2014-04-22
    • 1970-01-01
    相关资源
    最近更新 更多