Python Jupyter Interactive ipywidgets:一个参数有几个小部件

Python Jupyter Interactive ipywidgets:一个参数有几个小部件,python,ipython,ipywidgets,python-interactive,Python,Ipython,Ipywidgets,Python Interactive,是否可以将多个小部件链接到一个参数? 我有以下三个布尔小部件: 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=Fal

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

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,例如
interact(test,x=fixed(3),data=[w1,w2,w3])但它给出了错误

“Checkbox”对象不可编辑


是否有任何方法可以将这三个小部件链接到单个参数
数据
?我必须将此参数保留为布尔值列表。

您可以这样做:

将IPyWidget作为小部件导入
从ipywidgets导入交互,修复
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测试(**kwargs):
x=kwargs.pop('val'))
如果全部(kwargs.values()):
打印(x)
#做点什么
交互(测试,val=fixed(3),w1=w1,w2=w2,w3=w3);