kak*_*k11 3 jupyter ipywidgets
我有一个看似简单的意图,只需在jupyter笔记本中有一个下拉小部件来触发一些简单的动作.它有点工作,但是下面的脚本实际上似乎触发了三次事件,我做错了什么?
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)
Run Code Online (Sandbox Code Playgroud)
当我从下拉列表中选择项目时的输出就像是
var1
var2
var2
Run Code Online (Sandbox Code Playgroud)
每次选择都会变得越来越长
我想要的是每种选择只触发一次动作(打印或其他)的方法,我该如何实现?
小智 6
您需要指定哪些特质你在听.现在你正在倾听所有的特质.当在下拉列表中选择一个项目时,会在引擎盖下更改一些私有特征,从而触发回调.
要避免这种情况,请使用nameskwarg 指定要监听的特征(可以是特征名称或特征名称列表)
select_variable.observe(get_and_plot, names='value')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3097 次 |
| 最近记录: |