Python 回调函数#

Python 回调函数(有时也称为事件处理程序)是您可以附加到小部件的 Python 函数。您只能在Bokeh 服务器应用程序中使用这些回调函数。对于不需要 Bokeh 服务器的交互式回调函数,请参阅JavaScript 回调函数

当 Bokeh Model 上的某些属性发生更改时,就会调用 Bokeh 的 Python 回调函数。事件处理程序的函数签名取决于它们如何附加到小部件(例如,通过.on_change.on_event)。

on_change 回调触发器#

例如,所有小部件都具有一个.on_change方法,该方法接受属性名称和一个或多个事件处理程序作为参数。这些处理程序的函数签名应为(attr, old, new),其中attr指的是已更改属性的名称,而oldnew指的是属性的先前值和更新值。

def my_text_input_handler(attr, old, new):
    print("Previous label: " + old)
    print("Updated label: " + new)

text_input = TextInput(value="default", title="Label:")
text_input.on_change("value", my_text_input_handler)

有关使用.on_change监视的属性的更多信息,请参阅参考指南中bokeh.models下的相应模型。

on_event 回调触发器#

此外,某些小部件(包括按钮下拉菜单复选框组)具有一个.on_event方法,该方法只接受一个事件处理程序作为参数。对于普通按钮,此处理程序在没有参数的情况下被调用。对于其他具有.on_event的小部件,处理程序将传递新的属性值。

def my_radio_handler(new):
    print('Radio button option ' + str(new) + ' selected.')

radio_group = RadioGroup(labels=["Option 1", "Option 2", "Option 3"], active=0)
radio_group.on_event('button_click', my_radio_handler)

有关使用.on_event监视的属性的更多信息,请参阅参考指南中bokeh.models下小部件的相应条目。