Finding the name of a function while defining it

Roy Smith roy at panix.com
Thu Dec 27 16:09:01 CET 2012


In article <50dc29e9$0$29967$c3e8da3$5496439d at news.astraweb.com>,
 Steven D'Aprano <steve+comp.lang.python at pearwood.info> wrote:

> On Wed, 26 Dec 2012 23:46:31 -0800, Abhas Bhattacharya wrote:
> 
> >> > two = lamba : "one"
> >> > one = two
> >> 
> >> > Which one of these is the "name" of the function?
> [...]
> > If i call one() and two() respectively, i would like to see "one" and
> > "two".
> 
> I'm afraid you're going to be disappointed. There is no possible way for 
> one() and two() as shown above to report different names, because they 
> are the same function object.

Well, there is the (yes, I know it's absurd) sledgehammer-and-peanut way 
of getting a stack trace, finding the frame that called your function, 
and parsing the text of that line.

Never tell a hacker, "no possible way" :-)



More information about the Python-list mailing list