如何在 ipywidgets 上定义 Slider 小部件的默认值?

How to define the default value of a Slider widget on ipywidgets?

在 Jupyter Notebook 上并使用 ipywidgets,我可以使用精简版创建滑块

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

滑块的默认值为 0,但我想将其设置为 1。我该怎么做?

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

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

小部件缩写(使用元组请求滑块等)仅公开一小部分可传递给小部件的选项。默认值来自函数定义中的默认值(如果可用)或范围的中心(如果不可用)。如果您不想更改现有函数的签名以为其提供默认参数,您有两个选项来指定初始值:

  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)
    
  2. 直接实例化一个Widget并指定value属性,而不是依赖缩写:

    w = widgets.IntSlider(value=1, min=0, max=1)
    interact(f, x=w)