ipywidgets 文本 on_change 在输入时刷新有问题

ipywidgets Text on_change is buggy refreshes while typing

我正在使用 ipywidgets.Text 并编写了一个函数,当文本更改时会 运行。该功能是时间密集型的。 Text 取 1000 以内的整数。

from ipywidgets import Text
a = Text(description = "Type here", placeholder = "integer: ex: 123")

def on_change(change):
    if change["new"]!= change["old"]:
        print(change)
        #some time intensive code
a.observe(on_change, names =["value"])

所以,当我输入 123 时,on_change 函数 运行s 用于 1,12 和 123(附图)。 我能以某种方式消除 1 和 12 的 运行ning 吗?

一个明显的想法是保留一个明确的按钮,并且 运行 仅当该按钮被单击时.. 但是没有更好的主意吗?

您可以将 continuous_update=False 用于您的小部件。

a = Text(
    description = "Type here", 
    placeholder = "integer: ex: 123",
    continuous_update=False
)

使用此参数,您的 on_change 函数将仅在以下情况下接收值:按 Enter 键或从输入中移除焦点。