anonymous functions/expressions without lambda?

Peter Hansen peter at engcorp.com
Thu Apr 28 11:21:36 EDT 2005


Paul Miller wrote:
> For example, let's say I have a function which binds a key to a function 
> call. I want to do something "simple" in this function call, and I have 
> a lot of bindings, so I don't want to have a ton of tiny little 
> functions scattered around:
> 
>     def setVarTo1():
>         foo.var = 1
>     def setVarTo2():
>         foo.var = 2
> 
>     bind('a', setVarTo1)
>     bind('b', setVarTo2)
> 
> Instead, I'd like to do something like this:
> 
>     bind('a', foo.var = 1)
>     bind('b', foo.var = 2)
> 
> What's the recommended way to do something like this?

This meets your requirements as stated:

def temp():
    foo.var = 1

bind('a', temp)

def temp():
    foo.var = 2

bind('b', temp)

del temp


-Peter



More information about the Python-list mailing list