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

时间:2016-07-01 10:36:09

标签: ipython ipython-notebook jupyter jupyter-notebook ipywidgets

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

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

滑块的默认值为0,但我想制作1.我该怎么做?

2 个答案:

答案 0 :(得分:3)

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

  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)
    

答案 1 :(得分:2)

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

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