如何获得触发回调的对象的散景回调?
How to get on a Bokeh callback which Object has triggered the callback?
我正在构建一些散景图函数,根据所提供数据的结构,这些函数将具有不同数量的 Select 小部件。
这样,我有一个名为 'filters' 的列表,其中包含每个 Select 小部件作为列表元素:
过滤器 = [Select1, Select2, ....]
我正在为这些函数中的每一个分配一个相同的回调 'update_dropdown',如下代码所示。对于最后一个过滤器,我最终为 'update_plot'.
分配了一个回调
for f in filters[:-1]:
f.on_change('value', update_dropdown)
filters[-1].on_change('value', update_plot)
但是,为了使此策略有效,我需要获取哪个过滤器触发了 'update_dropdown' 函数内的 'update_dropdown' 回调,以便它相应地更新其他过滤器。有可能实现吗?
我希望是这样的:
def update_dropdown(attr, old, new, FILTER_WHO_TRIGGERED_THE_CALLBACK):
#doing some stuff here accordingly to the variable FILTER_WHO_TRIGGERED_THE_CALLBACK
谢谢!!!!
无法直接执行 - 您必须为每个过滤器创建一个单独的回调。
类似于:
def bind_cb_obj(cb_obj, cb):
def wrapped(attr, old, new):
cb(cb_obj, attr, old, new)
return wrapped
filters[-1].on_change('value', bind_cb_obj(filters[-1], update_plot))
我正在构建一些散景图函数,根据所提供数据的结构,这些函数将具有不同数量的 Select 小部件。
这样,我有一个名为 'filters' 的列表,其中包含每个 Select 小部件作为列表元素:
过滤器 = [Select1, Select2, ....]
我正在为这些函数中的每一个分配一个相同的回调 'update_dropdown',如下代码所示。对于最后一个过滤器,我最终为 'update_plot'.
分配了一个回调 for f in filters[:-1]:
f.on_change('value', update_dropdown)
filters[-1].on_change('value', update_plot)
但是,为了使此策略有效,我需要获取哪个过滤器触发了 'update_dropdown' 函数内的 'update_dropdown' 回调,以便它相应地更新其他过滤器。有可能实现吗?
我希望是这样的:
def update_dropdown(attr, old, new, FILTER_WHO_TRIGGERED_THE_CALLBACK):
#doing some stuff here accordingly to the variable FILTER_WHO_TRIGGERED_THE_CALLBACK
谢谢!!!!
无法直接执行 - 您必须为每个过滤器创建一个单独的回调。
类似于:
def bind_cb_obj(cb_obj, cb):
def wrapped(attr, old, new):
cb(cb_obj, attr, old, new)
return wrapped
filters[-1].on_change('value', bind_cb_obj(filters[-1], update_plot))