lambda

Duncan Booth duncan at NOSPAMrcp.co.uk
Thu May 24 05:38:11 EDT 2001


Laura Creighton <lac at cd.chalmers.se> wrote in
news:mailman.990635563.6483.python-list at python.org: 
> If I had just used w.grid up there I would get a yellow button with
> pink text.   This form is concise.  What do the lambda dislikers
> suggest I do instead?  (This is a serious question)

If you are using Python 2.1, then the lambda form becomes much neater:

from __future__ import nested_scopes
import Tkinter

if __name__ == '__main__':
    root = Tkinter.Tk()
    w = Tkinter.Button(root, text='This is a very green button', width= 30, 
fg='green')
    
    buttonList = (
        ['show', lambda: w.grid(row=0, col=0, columnspan= 5)],
        ['pink', lambda: w.configure(fg='pink')],
        ['yellow', lambda: w.configure(bg='yellow')],
        ['Exit', root.destroy],
        )
    column = 0
    for txt, cmd in buttonList:
        button = Tkinter.Button(root, text = txt, command = cmd)
        button.grid(row=1, col=column, sticky = 'w')
        column = column + 1
    root.mainloop()



-- 
Duncan Booth                                             duncan at rcp.co.uk
int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
"\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?



More information about the Python-list mailing list