ipywidgets:确定正在观察哪个小部件

ipywidgets: identify which widget is being observed

我需要创建数量可变的小部件,然后确定当用户与其中一个小部件交互时正在观察哪个小部件。在以下示例中,正在创建 n IntSliders

import ipywidgets as wg
def obs(change):
    print(change)
def fun(n):
    l  = []
    for i in range(n):
        l.append(wg.IntSlider())
        l[i].observe(obs, names='value')
    display(wg.VBox(l))
fun(4)

与其中一个滑块交互时,change 变量仅给出 owneroldnewtypename

{'owner': IntSlider(value=1), 'new': 1, 'old': 0, 'type': 'change', 'name': 'value'}

我想 "tweak" change 的内容包括它在列表中的位置 l.

注意: 我不能使用现有的 IntSlider 属性,例如 description,因为那样它会反映在小部件外观中。

this issue中给出了解决方案。