Я хочу отправить дополнительные данные обработчику событий bokeh (например, метод on_change или on_click). Ниже приведен минимальный пример, который увеличивает или уменьшает целое число (я запускаю это приложение с помощью функции «bokeh serve --show app.py»). Мне пришлось писать отдельные обработчики событий, которые в этом примере выполняют почти одинаковые вещи. Чтобы написать это приложение с помощью только одной функции обработчика событий, мне нужно передать дополнительные данные, или обработчик события должен знать вызывающий объект. Как мне это сделать?Python Bokeh отправляет дополнительные параметры обработчику событий виджетов
from bokeh.plotting import curdoc
from bokeh.models.widgets import Button, Paragraph
from bokeh.layouts import widgetbox
minus = Button(label='-')
plus = Button(label='+')
text = Paragraph(text='0')
def minus_callback():
text.text = str(int(text.text) - 1)
def plus_callback():
text.text = str(int(text.text) + 1)
minus.on_click(minus_callback)
plus.on_click(plus_callback)
# I would prefer to just use one callback and pass additional data to it:
# minus.on_click(callback, action='decrement')
# plus.on_click(callback, action='increment')
layout = widgetbox(minus, plus, text)
curdoc().add_root(layout)
Спасибо за этот ответ - functools парциального также хорошо работает с боком FunctionHandler пройти kwargs при запуске приложения сервера в пределах Jupyter, поэтому функция [это] (https://github.com/bokeh/bokeh/ blob/0.12.5/examples/howto/server_embed/notebook_embed.ipynb), код может иметь переменные, переданные ему ... – b2002