是否可以将多个小部件链接到一个参数?
我有这三个布尔小部件:
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);