首页 > 解决方案 > 当函数参数是列表时,python panel.interact 不创建 UI 小部件

问题描述

我在中使用panelpython模块jupyter notebook,我正在使用它的interact函数,它负责根据函数参数的值自动生成GUI小部件。但是我有一个列表,其中包含可用于制作 GUI 小部件的值,但是当我将列表作为输入传递给函数并使用时panel.interact(function_name),它不会为这些值参数创建 GUI。

假设我有包含以下值的列表

data= ['some_text', 10]

我将它作为参数传递给函数。IE:

def fun(data):

所以我想当我使用panel.interact(fun)TextInput和一时IntSlider应该来。但它没有发生,而是如果我在函数参数中给出这些值,如下所示:

def fun(data1='sometext', data2=10):

然后它生成TextInputand IntSlider

标签: pythonpython-3.xdashboardipywidgets

解决方案


这是一个使用问题,应该在 Discourse 上提交。

也就是说,如果你想要可变参数,你必须让你的函数接受 kwargs,然后将 kwargs 提供给交互调用:

def fn(**kwargs):
    return kwargs

kwargs = {'a': 'text', 'b': 10}

pn.interact(fn, **kwargs)

不支持使用 args 和您建议的列表。

链接参考:https ://github.com/holoviz/panel/issues/2308


推荐阅读