Accessing func_name from inside a function

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Mon Mar 27 01:48:58 CEST 2006


James Thiele a écrit :
> I'd like to access the name of a function from inside the function. My
> first idea didn't work.
> 
> 
>>>>def foo():
> 
> ...     print func_name
> ...
> 
>>>>foo()
> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "<stdin>", line 2, in foo
> NameError: global name 'func_name' is not defined
> 
> My second attempt works but looks ugly.
> 
> 
>>>>def foo():
> 
> ...     import inspect
> ...     print inspect.stack()[0][3]
> ...
> 
>>>>foo()
> 
> foo
> 
> Is there a standard way of getting the name of a function from inside
> the function?
> 

You've already got good answers. Now here's another workaround:

class _FooFunction(object):
   def __call__(self):
     print self.__class__.__name__
foo = _FooFunction()




More information about the Python-list mailing list