title: tkinter TypeError: function takes 1 positional argument but 2 were given()
body: <p>I'm facing a problem and I don't know from where this comes from.
  As my code is too long I will only share the function generating this error and the lines where I use it (I can of course share other parts if it's necessary)</p>
  
  <pre><code>class Label(object):
      #constructor
      def __init__(self, data, id,  filefullpath, AGE, counter):
  
          self.counter = counter 
          self.filefullpath = filefullpath
          self.data = data             
          self.object_id = id
          self.data_length = len(data)
          self.AGE = AGE
          # GUI
          self.root = Tk()
          self.root.title("CHOOSE A LABEL")
          #Create a listbox with a scrollbar
          self.listbox = Listbox(self.root)
          type = ['Indifined','a','b','c']
          for ind, val in enumerate(type):
              self.listbox.insert(ind, val)
          self.listbox.bind('&lt;&lt;ListboxSelect&gt;&gt;', self.save)
          self.listbox.pack()
          Button(self.root, text = "OK"  , command = self.root.destroy).pack(side = 'left')
          self.root.mainloop()
  
  
      def get_selected_label(self):
          """ get the label entered by the user """
          return(self.listbox.get(self.listbox.curselection())) 
  
      def save(self):
          """
          Save the label entered by the user
          """
          # get the label 
          label = self.get_selected_label()
  
          if len(label) &gt; 0:
              for k in range(self.AGE +2): # plus 2 to include age=-1 and age = 0
                  Informations = Get_Informations(self.data, self.filefullpath, self.counter - k)
                  Id    = Informations.Id()
                  age   = Informations.age()
                  for ind, val in enumerate(Id):
                      if self.object_id == val:
                          age = age[ind]
                          if age &lt;= self.AGE:
                              self.data[self.counter - k]["super_clusters"][ind]["label"] = label
                          else:
                              break
                      else:
                          pass
              for k in range(self.counter +1 , len(self.data)):
                  Informations = Get_Informations(self.data, self.filefullpath,  k)
                  Id    = Informations.Id()
                  age   = Informations.age()
                  if self.object_id in Id :
                      for ind, val in enumerate(Id):
                          if self.object_id == val :
                              age = age[ind]
                              if age != -1:
                                  self.data[self.counter + k]["super_clusters"][ind]["label"] = label
                              else:
                                  break
                          else:
                              pass
                  else:
                      # the track disappeared
                      break
  </code></pre>
  
  <p>This is the error Python returns : as I haven't pass any argument to save when calling it I really don't understand this message.</p>
  
  <pre><code>Exception in Tkinter callback
  Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
  return self.func(*args)
  TypeError: save() takes 1 positional argument but 2 were given
  </code></pre>
  
  <p>I thank you in advance.</p>