Jupyter 交互 ipywidgets:一个参数的多个小部件



是否可以将多个小部件链接到一个参数?
我有这三个布尔小部件:

import ipywidgets as widgets
from ipywidgets import interact, fixed
w1 = widgets.Checkbox(value=False, description='Widget 1')
w2 = widgets.Checkbox(value=False, description='Widget 2')
w3 = widgets.Checkbox(value=False, description='Widget 3')

我尝试使用 interact 调用的函数有一个参数,它是三个布尔值的列表。 例如:

def test(x, data):
if all(data):
# do something

现在我尝试通过以下方式使用交互,例如interact(test, x=fixed(3), data=[w1, w2, w3]);但它给出了错误

"复选框"对象不可迭代

有什么方法可以将这三个小部件链接到单个参数data?我必须将这个论点保留为布尔值列表。

你可以做这样的事情:

import ipywidgets as widgets
from ipywidgets import interact, fixed
w1 = widgets.Checkbox(value=False, description='Widget 1')
w2 = widgets.Checkbox(value=False, description='Widget 2')
w3 = widgets.Checkbox(value=False, description='Widget 3')
def test(**kwargs):
x = kwargs.pop('val')
if all(kwargs.values()):
print(x)
# do something
interact(test, val = fixed(3), w1=w1, w2=w2, w3=w3);

相关内容

最新更新