title: Python: function takes 1 positional argument but 2 were given, how?
body: <p>I was creating a Sudoku Game in python with Tk.</p>
  
  <p>I got a error about the function on a keypress for a button</p>
  
  <pre><code>from random import randint
  from tkinter import *
  
  class sudoku:
      global root,result,lb
      def __init__(self):
          self.aleatoriedade()
          for k in range(9):
              j=randint(0,80)
              x=j//9
              y=j-(x*9)
              lb[x][y]['text']=result[x][y]
          lb[0][0].bind('&lt;KeyPress-2&gt;',self.kk)
          #setted this for test
          root.mainloop()
  
      def kk(self):
          lb[0][0]['text']='2'
  
  
      def aleatoriedade(self):
          for i in range(9):
              var=0
              while var in result[0]:
                  var=randint(1,9)
              result[0][i]=var
  
          for i in range(1,9):
              for j in range(9):
                  result[i][j]=result[0][field[i][j]-1]
  
  #MAIN()
  n = 3
  field = [[(i*n + i//n + j) % (n*n) + 1 for j in range(9)]for i in range(9)] 
  result = [[None for i in range(9)]for i in range(9)]
  lb=[[None for i in range(9)]for i in range(9)]
  x=0
  y=0
  root=Tk()
  
  for i in range(9):
      for j in range(9):
          lb[i][j]=Button(root,font=("Verdana",'13',"bold"),bd=1,height=3,width=6)
          if (i in (0,1,2,6,7,8) and j in (0,1,2,6,7,8))or(i in (3,4,5) and j in (3,4,5)):
              lb[i][j]['bg']='white'
          lb[i][j].grid(row=i,column=j)
  janela=sudoku()
  </code></pre>
  
  <p>and this error/exception in <code>lb[0][0].bind('&lt;KeyPress-2&gt;',self.kk)</code></p>
  
  <pre><code>Exception in Tkinter callback
  Traceback (most recent call last):
    File "C:\Python33\lib\tkinter\__init__.py", line 1489, in __call__
      return self.func(*args)
  TypeError: kk() takes 1 positional argument but 2 were given
  </code></pre>
  
  <p>I don't mind where is the error. I have included the self on my function</p>