散景:处理未知数目(在编译时)按钮的回调

问题描述 投票:0回答:1

我在运行时创建了多个按钮,并将它们存储在列表中。

keys = []
keys.append(Button(label="-- Parent --"))
for key in node_obj.children.keys():
    keys.append(Button(label=key))

请注意,node_obj的子代数量可能有所不同,因此按钮的数量并不总是相同。我正在尝试为所有按钮创建回调,并像这样:

def test_fn(button): 
    print(button.label)

for button in keys:
    button.on_click(lambda : test_fn(button))

但它总是打印列表中最后一个按钮的标签。如何修改它以便打印所单击的按钮的标签?

python button callback bokeh
1个回答
0
投票

这是Python运作方式的结果。您将需要使用functools.partial来“烘焙”按钮:

© www.soinside.com 2019 - 2024. All rights reserved.