2016-12-07 9 views
0

私は一見単純な意図を持っています。単純な動作をトリガーするために、ジュピターノートブックのドロップダウンウィジェットを持っています。それは作品の並べ替えですが、実際にスクリプトは、イベントを3回トリガするようだ、私は間違って何ですか?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) 

は、私はドロップダウンリストから項目を選択し、出力は

var1 
var2 
var2 

のようなものと、それぞれ選択して長くなっています。

私が得たいのは、選択肢ごとにアクション(プリントなど)をトリガする方法です。これをどのように達成するのですか?

答えて

2

あなたが聞いている特性を指定する必要があります。今すぐあなたはすべてのの特性を聞いています。 ドロップダウンで項目を選択すると、フード内で一部のプライベートな特性が変更され、コールバックが発生します。これを避けるために

、あなたがnames kwargで聴きたい形質を指定

select_variable.observe(get_and_plot, names='value') 
(形質名または形質名のリストのいずれかになります)