在中识别小部件IPython.html.widgets.互动

2024-09-30 01:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是基于InteractiveWidgets文档中的this example,该文档使用IPython.html.widgets.interactive创建一个用于探索音频节拍的交互式小部件。这是创建小部件的调用:

v = interactive(beat_freq, f1=(200.0,300.0), f2=(200.0,300.0))

beat_freq的定义如下:

^{pr2}$

我对这一行代码感到困惑:

f1, f2 = v.children

作者怎么知道子窗口小部件的顺序是(f1, f2),而不是{}?只是因为他们在调用interactive时的顺序创建了widget吗?或者它是从他们在呼叫特征码中的顺序得到的?如果我在v中添加和删除小部件,会发生什么情况?在

老实说,我并不在乎这些问题的答案。我只需要一种方法来识别每个变量对应的小部件。我想一定有一种方法可以通过检查ContainerWidgetv来解决这个问题,而不必知道它是如何产生的。毕竟,v本身显然知道,因为v.kwargs是一个连接变量名和值的dict,如果你摆弄小部件,它会相应地改变。不幸的是,这个模块中的docstring是最小的或者不存在的,我还没有能够自己解决它。在


Tags: 方法文档顺序部件examplehtmlipythonwidgets
1条回答
网友
1楼 · 发布于 2024-09-30 01:33:46

好吧,我想我基本上已经弄明白了。第一个问题(决定子部件顺序的是什么)的答案似乎是,它是由处理程序函数beat_freq的调用签名决定的。至少,如果我颠倒了beat_freq定义中关键字参数的顺序,而在对interactive的调用中保持相同,则子窗口小部件的顺序将颠倒:它们现在是(f2, f1)。如果beat_freq被定义为beat_freq(**kwargs)会发生什么,我还没有探索过。在任何情况下,这对我来说似乎是非常特殊的,不应该依赖它。在

第二个问题,如何识别与每个变量对应的小部件,答案更简单、更清晰。它是子小部件的descriptiontraitle。所以,在这个例子中,v.children[0].descriptionu'f1'。如果我交换beat_freq定义中的参数,v.children[0].description就是u'f2'。我认为,这是识别交互式创建的小部件的可靠方法。在

相关问题 更多 >

    热门问题