从循环中获取 IPython 小部件的当前值
Getting the current value of an IPython widget from within a loop
我想在某个循环中获取滑块小部件的值。但是,我希望这些能够实时更新。
例如见下文。在图中的代码中,我初始化了一些滑块,然后 运行 下面的循环。在循环 运行ning 期间,我四处移动滑块。循环中的打印值不会从初始值改变。当我执行最后一个单元格时,会显示更新后的滑块值。
这是一个受异步小部件中最后一个示例启发的解决方案(由@Fabio Perez 建议):
import threading
from IPython.display import display
import ipywidgets as widgets
def f(a, b):
return
w = interactive(f, a=10, b=20)
def work(w):
for ii in range(10):
time.sleep(1)
print(w.kwargs, w.result)
thread = threading.Thread(target=work, args=(w,))
display(w)
thread.start()
这将启动一个单独的线程来检查小部件的值。
我想在某个循环中获取滑块小部件的值。但是,我希望这些能够实时更新。
例如见下文。在图中的代码中,我初始化了一些滑块,然后 运行 下面的循环。在循环 运行ning 期间,我四处移动滑块。循环中的打印值不会从初始值改变。当我执行最后一个单元格时,会显示更新后的滑块值。
这是一个受异步小部件中最后一个示例启发的解决方案(由@Fabio Perez 建议):
import threading
from IPython.display import display
import ipywidgets as widgets
def f(a, b):
return
w = interactive(f, a=10, b=20)
def work(w):
for ii in range(10):
time.sleep(1)
print(w.kwargs, w.result)
thread = threading.Thread(target=work, args=(w,))
display(w)
thread.start()
这将启动一个单独的线程来检查小部件的值。