2017-01-10 2 views
1

У меня есть следующий сценарий, в котором я хочу, чтобы выполнить функцию с on_change:Bokeh: Определите, какая модель называется обработчик события on_change

def update_func: 
    calling_widget = < I need the name of the widget here: "SelectorWidget" > 
    do_something 

SelectorWidget = MultiSelect(title="A widget", value = "default", options = option_list) 

SelectorWidget.on_change('value', update_func) 

То же update_func будет использоваться на различных виджетов, и я хотел бы чтобы иметь возможность получить имя виджета, который запускал функцию каждый раз.

Любые идеи?

ответ

1

Try:

from functools import partial 

# add a widget arg to standard callback signature 
def update_func(attr, old, new, widget): 
    # do something with widget 

SelectorWidget = MultiSelect(title="A widget", 
          value="default", 
          options=option_list) 

# use partial to make a callback callable with widget arg bound 
SelectorWidget.on_change('value', 
         partial(update_func, widget=SelectorWidget)) 
Смежные вопросы