如何告诉 `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
似乎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