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

got*_*ota 2 ipython ipython-notebook jupyter jupyter-notebook ipywidgets

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

import ipywidgets as ip
def f(x):
    print(x)
ip.interact(f, x = (0, 1, 1))
Run Code Online (Sandbox Code Playgroud)

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

min*_*nrk 10

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

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

    w = widgets.IntSlider(value=1, min=0, max=1)
    interact(f, x=w)
    
    Run Code Online (Sandbox Code Playgroud)


小智 6

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

import ipywidgets as ip
def f(x=1):
    print(x)
ip.interact(f, x = (0, 1, 1))
Run Code Online (Sandbox Code Playgroud)