title: tkinter option menu doesn't return the correct value for selected options created via .add_command()
body: <p>My very first tkinter experience was going rather smoothly, but now I'm stumped.</p>
  <p>I received assistance, and got some modifed test code I found from another thread while researching. However, I couldn't get the code working in my actual project.</p>
  <p>I'm trying to figure out why replacing
  <code>menu['menu'].add_command(label='New Item')</code> with
  <code>for x in ['d', 'e', 'f']: menu['menu'].add_command(label=x, command=lambda: callback(x))</code> breaks.</p>
  <p>The last new entry added (f in this case) is always returned when one of the other newly created entries d or e is selected, while the initial entries a, b, &amp; c continue to work as expected.</p>
  <p>Working example:</p>
  <pre><code>import tkinter as tk
  
  def callback(selection):
      print(selection)
      options.set(selection)
  
  root = tk.Tk()
  options = tk.StringVar()
  menu = tk.OptionMenu(root, options, 'a', 'b', 'c', command=callback)
  menu.pack()
  menu['menu'].add_command(label='New Item', command=lambda: callback('New Item'))
  options.set('a')
  root.mainloop()
  </code></pre>
  <p>Broken example:</p>
  <pre><code>import tkinter as tk
  
  def callback(selection):
      print(selection)
      options.set(selection)
  
  root = tk.Tk()
  options = tk.StringVar()
  menu = tk.OptionMenu(root, options, 'a', 'b', 'c', command=callback)
  menu.pack()
  for x in ['d', 'e', 'f']:
      menu['menu'].add_command(label=x, command=lambda: callback(x))
  options.set('a')
  root.mainloop()
  </code></pre>