IPython笔记本有两个依赖于值小部件的函数
我有一个IPython noteboook,它有两个宽度(IPython笔记本有两个依赖于值小部件的函数,python,widget,ipython,ipython-notebook,Python,Widget,Ipython,Ipython Notebook,我有一个IPython noteboook,它有两个宽度(carW和speedW)和两个功能(print_car和print_car_和_speed),这取决于小部件的值。我试图实现的是,print\u car的输出随着carW的值的变化而变化,print\u car\u和\u speed的输出随着carW或speedW的值的变化而变化 以下是我正在使用的代码: from IPython.html import widgets from IPython.display import displa
carW
和speedW
)和两个功能(print_car
和print_car_和_speed
),这取决于小部件的值。我试图实现的是,print\u car
的输出随着carW
的值的变化而变化,print\u car\u和\u speed
的输出随着carW
或speedW
的值的变化而变化
以下是我正在使用的代码:
from IPython.html import widgets
from IPython.display import display
def print_car(car):
print "Selected car: {}".format(car)
def print_car_and_speed(car, speed):
print "Driving {} with speed: {}".format(car, speed)
carW = widgets.Dropdown(options=['Prius', 'Porsche'])
carW.value = 'Prius'
i = widgets.interactive(print_car, car=carW)
display(i)
speedW = widgets.FloatSlider()
j = widgets.interactive(print_car_and_speed, car=carW, speed=speedW)
display(j)
此代码的问题是,打印车的输出没有为我显示。但是,如果我对最后两行进行注释,print\u car
的输出将按我的预期显示
理想情况下,我希望输出遵循以下格式:
widgetcarW
打印车的输出
widget(不要重复speedW
widget)carW
打印车和速度的输出
如果你能给我指点一下如何做到这一点,那就太好了。谢谢大家! 我想出了如何显示两个函数的输出,这两个函数依赖于一个小部件的值,这样它们就不会通过一个将小部件的值广播给两个输出函数的中间处理程序互相妨碍:
from IPython.html import widgets
from IPython.display import display
def handler_car(car):
print_car(car)
print_car_and_speed(car, speedW.value)
def handler_speed(speed):
print_car(carW.value)
print_car_and_speed(carW.value, speed)
def print_car(car):
print "Selected car: {}".format(car)
def print_car_and_speed(car, speed):
print "Driving {} with speed: {}".format(car, speed)
carW = widgets.Dropdown(options=['Prius', 'Porsche'])
carW.value = 'Prius'
speedW = widgets.FloatSlider()
i = widgets.interactive(handler_car, car=carW)
display(i)
j = widgets.interactive(handler_speed, speed=speedW)
display(j)
我现在唯一缺少的是按照正确的顺序安排:
widgetcarW
打印车的输出
widget(不要重复speedW
widget)carW
打印车和速度的输出