我的问题是基于来自交互式小部件文档的this example,它使用IPython.html.widgets.interactive
创建一个用于探索音频节拍的交互式小部件。这是创建插件的呼叫:在IPython.html.widgets.interactive中识别小部件
v = interactive(beat_freq, f1=(200.0,300.0), f2=(200.0,300.0))
beat_freq
被这样定义:
def beat_freq(f1=220.0, f2=224.0):
...
我疑惑特别是通过这行代码:
f1, f2 = v.children
如何做的作者知道子窗口小部件的顺序是(f1, f2)
,而不是(f2, f1)
?仅仅是因为这是他们在创建widget的互动调用中的顺序?或者它是否从它们在呼叫签名中的顺序派生到beat_freq?如果我在v
创建之后添加并删除了小部件,会发生什么情况?
说实话,我并不真正关心这些问题的答案。我只想要一种方法来识别与每个变量相对应的小部件。我认为必须有一种方法可以通过检查ContainerWidget
v
来了解这一点,而不必知道它是如何创建的。毕竟,v
本身显然知道,因为v.kwargs
是一个将变量名连接到值的字典,并且如果您操作该小部件,则会进行相应更改。不幸的是,这个模块中的文档很少或根本不存在,而且我也无法为自己解决这个问题。