2017-04-14 49 views
3

我有这样的代码IPython的代码:拉ipywidget值手动

import ipywidgets as widgets 
from IPython.display import display 
import time 

w = widgets.Dropdown(
    options=['Addition', 'Multiplication', 'Subtraction'], 
    value='Addition', 
    description='Task:', 
) 

def on_change(change): 
    print("changed to %s" % change['new']) 

w.observe(on_change) 

display(w) 

它按预期工作。当小部件的值发生变化时,触发on_change函数。但是,我想运行一个长计算并定期检查小部件的更新。例如:

for i in range(100): 
    time.sleep(1) 
    # pull for changes to w here. 
    # if w.has_changed: 
    #  print(w.value) 

我该如何做到这一点?

回答

0

仅供参考,我似乎能够做到所期望的轮询

import IPython 
ipython = IPython.get_ipython() 
ipython.kernel.do_one_iteration() 

(我仍然希望对这个工作是否因意外或设计一些反馈。)