title: callback functions associated with tkinter traces in Python3
body: <p>I raise this question because I just saw this question <a href="https://stackoverflow.com/questions/9865936/what-are-the-limitations-of-callback-functions-associated-with-tkinter-traces">What are the limitations of callback functions associated with Tkinter traces?</a>.</p>
  
  <p>And I use <code>lambda</code> to add another arguemnt.
  Here is the code:</p>
  
  <pre><code>from tkinter import *
  
  def callbackfunc(*args, **kwargs):
      print(args,kwargs)
  
  class App(object):
      def __init__(self, master):
          frame = Frame(master)
          frame.pack()
  
          optionvalue = IntVar(master)
          optionvalue.set(2)
          optionvalue.trace("w",lambda a,b,c,x='test':callbackfunc(x))
          self.optionmenu = OptionMenu(master, optionvalue, 1, 2, 3, 4)
          self.optionmenu.pack()
  
  root = Tk()
  app = App(root)
  root.mainloop()
  </code></pre>
  
  <p>my output: <code>('test',) {}</code>
  What I want to know is:
  Why aren't the other 3 arguments outputted if I use lambda?</p>