如何告诉 `ipywidgets.interactive`,它应该只将特定参数视为小部件?

How to tell `ipywidgets.interactive`, that it should consider only specific parameters as widgets?

似乎ipywidgets.interactive 试图使函数之后的每个输入都成为一个小部件。在下面的示例中,我得到了两个小部件,一个用于 age,一个用于 name:

import ipywidgets 

def greetings(age, name='John'):
    print(f'{name} is {age} years old')

ipywidgets.interactive(greetings, age = widgets.IntSlider(), name = "Bob")

我的期望是,我只得到一个 age 的小部件,因为它是 ipywidgets.widgets.widget_int.IntSlider 类型,而 "Bob"str 类型(我不知道'看到 link 到小部件)。自动创建小部件会导致两个问题:1. 我不希望用户可以指定每个参数 2. 某些参数如元组(示例中未显示)将导致错误。

如何告诉 ipywidgets.interactive,它应该只将特定参数视为小部件?

help(ipywidgets.interactive)the documentation 没有帮助。

首先,感谢您清晰的示例和描述。

您可以利用 ipywidgets 中的 fixed 函数通过交互式调用传递任何类型的固定 kwargs,但不为它们生成小部件。见下文:

import ipywidgets 

def greetings(age, name='John'):
    print(f'{name} is {age} years old')

ipywidgets.interactive(greetings, 
                       age = ipywidgets.IntSlider(), 
                       name = ipywidgets.fixed("Bob")
                      )

您应该也可以通过此方法传递元组。在文档中查看更多信息:https://ipywidgets.readthedocs.io/en/latest/examples/Using%20Interact.html#Fixing-arguments-using-fixed