2015-11-09 37 views
1

我想在IPython.html.widgets中使用IntSlider小部件,並且我想在滑塊值發生更改時調用函數。另外,我想傳入多個參數到函數中。我能夠使用on_trait_change()調用一個函數,但不知道如何來傳遞參數:在ipython筆記本小部件中使用on_trait_change

def somefn(parameter1, parameter2): 
    print (parameter1, parameter2) 

slider = widgets.IntSlider(min=0,max=3,step=1) 
slider.on_trait_change(somefn) 

回答

2

我會建議使用部分。

from IPython.display import display 
import ipywidgets as widgets 

def somefn(parameter1,my_arg): 
    print ("parameter1: {}".format(parameter1)) 
    print ("my_arg: {}".format(my_arg)) 

from functools import partial 
somefn_arg_0 = partial(somefn, my_arg=0) 

slider = widgets.IntSlider(min=0,max=3,step=1) 
slider.observe(somefn_arg_0) 
display(slider) 

注意我更換了observe過時的on_trait_change