【问题标题】:Jupyter interact ipywidgets: several widgets for one argumentJupyter 交互 ipywidgets:一个参数的多个小部件
【发布时间】:2020-05-20 09:29:58
【问题描述】:

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

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?我必须将此参数保留为布尔列表。

【问题讨论】:

    标签: python ipython ipywidgets python-interactive


    【解决方案1】:

    你可以这样做:

    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);
    

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 2023-02-05
      • 1970-01-01
      • 2017-01-13
      • 1970-01-01
      • 2019-05-22
      • 2019-03-06
      • 1970-01-01
      • 2020-03-20
      相关资源
      最近更新 更多