Jupyter 交互 ipywidgets:一个参数的几个小部件
Jupyter interact ipywidgets: several widgets for one argument
是否可以link多个小部件到一个参数?
我有这三个布尔小部件:
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]);
但它给出了错误
'Checkbox' object is not iterable
有什么方法可以将这三个小部件 link 到单个参数 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);
是否可以link多个小部件到一个参数?
我有这三个布尔小部件:
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]);
但它给出了错误
'Checkbox' object is not iterable
有什么方法可以将这三个小部件 link 到单个参数 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);