2017-04-14 54 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() 

(我仍然希望對這個工作是否因意外或設計一些反饋。)