如何在 ipywidgets 中定义 Slider 组件的默认值?

3

我可以在Jupyter Notebook上使用ipywidgets创建滑块,使用紧凑版本。

import ipywidgets as ip
def f(x):
    print(x)
ip.interact(f, x = (0, 1, 1))

滑块的默认值为0,但我想把它改成1。我该怎么做?
2个回答

11
小部件缩写(使用元组请求滑块等)仅公开了可以传递给小部件的选项的一小部分。如果可用,缺省值来自函数定义中的默认值,否则来自范围的中心。如果您不想更改现有函数的签名以给它一个默认参数,则有两种选项可指定初始值:
  1. 将您的函数包装在另一个函数中,该函数指定默认值:

    def f(x, y):
        print(x, y)
    
    @interact(x=(0, 5), y=(-1.,3.))
    def g(x=1, y=2.0):
        return f(x, y)
    
    直接实例化小部件并指定value属性,而不是依赖于缩写:
  2. w = widgets.IntSlider(value=1, min=0, max=1)
    interact(f, x=w)
    

6

在函数定义中设置默认值应该是有效的:

import ipywidgets as ip
def f(x=1):
    print(x)
ip.interact(f, x = (0, 1, 1))

成功了!谢谢,不过这迫使我重新排列函数输入,以便所有具有默认值的输入都在函数声明的末尾!理想情况下,我希望在小部件声明中设置默认值。但是你的解决方案帮助了我!谢谢。 - gota
这是因为在f函数中的默认参数x=1起作用,而不是在interact调用中元组中第三个1起作用。 - K.-Michael Aye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接