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

时间:2019-07-30 14:50:21

标签: python ipywidgets

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

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)

1 个答案:

答案 0 :(得分:0)

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

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

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