2

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

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(x, data):
   if all(data):
      # do something

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

“复选框”对象不可迭代

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

4

1 回答 1

2

你可以这样做:

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);
于 2020-05-20T11:49:17.797 回答