我一直在尝试在更改 ipywidget 后自动更新变量并运行代码片段。
到目前为止,我找到的唯一部分解决方案是声明一个全局变量,类似于 github 上的示例(此处):
import ipywidgets as widgets
from IPython.display import display
x = 5
slider = widgets.IntSlider()
slider.value = x
def on_change(v):
global x
x = v['new']
slider.observe(on_change, names='value')
display(slider)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想要实现的是在更改小部件后自动更改 x 值,而不使用全局变量,并且还更改一些先前定义的变量。它会是这样的:
x = 5
y = []
slider = widgets.IntSlider()
slider.value = x
def on_change(v):
x = v['new']
y.append(x)
slider.observe(on_change, names='value')
display(slider)
Run Code Online (Sandbox Code Playgroud)