如何通过多个按钮调用带参数的函数

How to call a function with parameter by multiple buttons

我在脚本中创建了很多按钮。 我需要通过这些按钮调用一个函数。 但该功能仅适用于最后一个按钮。 怎么了?

import ipywidgets as widgets
from IPython.core.display import display, HTML

def fn(b):
    print(b.description+" clicked.")

for i in range(10):
    btn= widgets.Button(
    description='Button '+str(i),
    disabled=False,
    button_style='info', # 'success', 'info', 'warning', 'danger' or ''
    tooltip='Delete')
    display(btn)

btn.on_click(fn)

btn.on_click(fn) 在您的循环之外,因此 btn 指的是您循环中的最后一个按钮实例

以这种方式编码将解决问题

for i in range(10):
  #loop previous body
  btn.on_click(fn)