я пытаюсь узнать об асинхронных виджетах, я хочу сделать кнопку, которая приостанавливает цикл for, пока пользователь не нажмет кнопку, но сначала я изучал на этой странице:
https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Asynchronous.html
Я использую код, показанный на странице
%gui asyncio
import asyncio
def wait_for_change(widget, value):
future = asyncio.Future()
def getvalue(change):
# make the new value available
future.set_result(change.new)
widget.unobserve(getvalue, value)
widget.observe(getvalue, value)
return future
from ipywidgets import IntSlider
slider = IntSlider()
async def f():
for i in range(10):
print('did work %s'%i)
x = await wait_for_change(slider, 'value')
print('async function continued with value %s'%x)
asyncio.ensure_future(f())
slider
, когда я его запускаю, вывод команды “Сделал работу 0” и ползунка появляется, как требуется, но когда я перемещаю ползунок из oв любой позиции код ничего не делает, я продолжаю перемещать его несколько раз, но
'async function continued with value %s'
не печатается, я что-то пропустил? как я понимаю, когда я перемещаю ползунок, я должен видеть напечатанный текст или нет?
спасибо заранее