Help, can't pass the button clicked

This is in my canned test code and is similar to what you want. You can also use a list. I think a dictionary is more readable.

from tkinter import *
from functools import partial

class ButtonsTest:
   def __init__(self):
      self.top = Tk()
      self.top.title("Click a button to remove")
      self.top.geometry("425x200+50+50")
      Label(self.top, text=" Click a button to remove it ",
            bg="lightyellow", font=('DejaVuSansMono', 12)
            ).grid(row=0, sticky="nsew")

      Button(self.top, text='Exit', bg="orange", width=9,
             command=self.top.quit).grid(row=1,column=0, 
             sticky="nsew")

      self.add_scrollbar()
      self.button_dic = {}
      self.buttons()

      self.top.mainloop()

   ##-------------------------------------------------------------------         
   def add_scrollbar(self):
        """ use a scrolled Text widget
        """
        self.canv = Canvas(self.top, relief=SUNKEN)
        self.canv.config(width=400, height=200)                
        self.top_frame = Frame(self.canv, height=100)

        ##---------- scrollregion has to be larger than canvas size
        ##           otherwise it just stays in the visible canvas
        self.canv.config(scrollregion=(0,0, 400, 500))         
        self.canv.config(highlightthickness=0)                 

        ybar = Scrollbar(self.top, width=15, troughcolor="lightblue")
        ybar.config(command=self.canv.yview)                   
        ## connect the two widgets together
        self.canv.config(yscrollcommand=ybar.set)              
        ybar.grid(row=3, column=2, sticky="ns")                     
        self.canv.grid(row=3, column=0)       
        self.canv.create_window(1,0, anchor=NW, 
               window=self.top_frame)


   ##-------------------------------------------------------------------         
   def buttons(self):
      b_row=1
      b_col=0
      for but_num in range(1, 51):
         ## create a button and send the button's number to
         ## self.cb_handler when the button is pressed
         b = Button(self.top_frame, text = str(but_num), width=5,
                    command=partial(self.cb_handler, but_num))
         b.grid(row=b_row, column=b_col)
         ## dictionary key=button number --> button instance
         self.button_dic[but_num] = b

         b_col += 1
         if b_col > 4:
            b_col = 0
            b_row += 1

   ##----------------------------------------------------------------
   def cb_handler( self, cb_number ):
      print("\ncb_handler", cb_number)
      self.button_dic[cb_number].grid_forget()

##===================================================================
BT=ButtonsTest()
/r/Tkinter Thread