About lambda.

Xin Wang xeranic at yahoo.com
Fri Oct 22 08:38:58 EDT 2004


Some c++ guru said c++ is hard to learn but easy to
use. Is python easy for both aspect? I found lot's of
confused in coding.

#code
from Tkinter import *

def on_click(m):
    print m
def lamb_on_click(m):
    return lambda : on_click(m)
root = Tk()
btns = ['0', '1', '2', '3']
for n in btns:
    b = Button(root, text=n, command=lamb_on_click(n))
#Ok!
    b.pack()
root.mainloop()
#

Or, 

#code
...
    b = Button(root, text=n, command=lambda x=n:
click(x)) #Ok!
...
#

The code above works well too, but follow is NOT! WHY?

#code
...
    b = Button(root, text=n, command=lambda :
on_click(n))
...
#

Whichever button be clicked, this only print '3'. 

Keyword 'lambda' is just like a macro in c or templete
in c++ or not?



		
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 



More information about the Python-list mailing list