get the name of lambda

Michael Hoffman at
Sat Oct 16 15:18:09 CEST 2004

George Yoshida wrote:

> Just out of curiosity, is there any way to get the name of a
> lambda expression? Lambdas are anonymous functions, so it's a
> stupid idea to get the name of it. But if it's possible, how
> could I?
> Let's take a simple example:
>   foo = lambda:None
> foo.__name__(or foo.func_name) returns '<lambda>'.
> I'm looking for a way to return 'foo', instead of '<lambda>'.

But you already know that it is called 'foo'! :)

Anyway I don't think it has anything to do with lambda:

 >>> def x(): pass
 >>> y = x
 >>> y.__name__

IIRC, in 2.4 you can set the func_name attribute so you could set up a 
decorator to set the name for you. Or if you want to be fancy you could 
even set up a metaclass that automatically renames all the lambda 
functions it finds in a class.

But why?
Michael Hoffman

More information about the Python-list mailing list