在ipython notebook小部件中使用on_trait_change

时间:2015-11-09 15:51:55

标签: ipython-notebook

我正在尝试在IPython.html.widgets中使用IntSlider小部件,并且我想在滑块值更改时调用函数。另外,我想将多个参数传递给函数。我能够使用on_trait_change()来调用函数,但不知道如何传递参数:

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

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

1 个答案:

答案 0 :(得分: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)

注意我已将已弃用的on_trait_change替换为observe