2017-04-14 2 views
3

Je possède ce code de ipython:valeur ipywidget manuellement

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) 

Il fonctionne comme prévu. Lorsque la valeur du widget change, la fonction on_change est déclenchée. Cependant, je veux exécuter un long calcul et vérifier périodiquement les mises à jour du widget. Par exemple:

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

Comment puis-je y parvenir?

Répondre

0

Pour référence, il me semble pouvoir faire le sondage souhaité avec

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

(je serais toujours aimé avoir des commentaires si cela fonctionne par accident ou à dessein.)