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

问题描述 投票:1回答:1

似乎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(我看不到小部件的链接)。自动化小部件的创建会引起两个问题:1.我不希望用户指定每个参数2.一些元组(如示例中未显示)之类的参数将导致错误。

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

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

python-3.x widget default-value interactive ipywidgets
1个回答
0
投票

首先,感谢您提供的清晰示例和说明。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.