如何获取列表生成的按钮的下标

我用列表的形式生成了一组按钮(tkinter中的),并绑定了一个改变按钮颜色的事件,预期是当我点击一个按钮时,这个按钮会变色。但是每次我点击一个按钮时都只有最后一个按钮变色,相应按钮不会变色。想知道如何做到点击一个按钮改变这个按钮本身的颜色。

问题主要在于如何向command指向的函数传参,因为Button(command=)无法传递函数的参数。
我的做法是这样的:

  1. 创建一个子类,继承tk.Button
  2. 在子类里,创建一个类方法
  3. 为Button对象赋值类方法

代码如下:

class Newbutton(tk.Button):
    def change_color(self):
        self.configure(bg='red')
btn = []
for i in range(10):
    btn.append(Newbutton(window,text=i,bg='green',width=2, height=2))
    btn[i].configure(command=btn[i].change_color)
    btn[i].pack()

如果有更好的办法可以一起讨论,互相学习

Button(command = )command填一个函数。然后记得函数里面要对一个变量改数值,然后根据数值对button改色。就是比如两个按钮,那就第一个按钮按的时候把变量改成1,然后第二个就改成2。