问题描述
我正在寻找一个简单的函数,它可以动态链接下面的 2 个函数,这样通过改变 D 或 R 的值,A 就会相应地改变。
from ipywidgets import interact,interactive,fixed,interact_manual
import ipywidgets as widgets
dW = widgets.Dropdown(options=['2','1'])
rW = widgets.FloatText(200)
aW = widgets.FloatText()
@interact(D=dW,R=rW)
def print_p(D,R):
dW = D
rW = R
@interact(A=aW)
def prin_t(A):
aW.value = int(dW.value) * int(rW.value)
解决方法
我认为 interact
在这里引起了一些混乱,为什么不对 dW 和 rW 使用标准的 observe
调用?
import ipywidgets as widgets
dW = widgets.Dropdown(options=['2','1'])
rW = widgets.FloatText(200)
aW = widgets.FloatText()
def change_a(_):
aW.value = int(dW.value) * int(rW.value)
dW.observe(change_a)
rW.observe(change_a)
display(widgets.VBox(children=[dW,rW,aW]))