Get the name of a function

Chris Rebert clp2 at rebertia.com
Fri Aug 5 17:19:21 EDT 2011


On Fri, Aug 5, 2011 at 11:52 AM, gervaz <gervaz at gmail.com> wrote:
> Hi all, is there a way to retrive the function name like with
> self.__class__.__name__?
>
> Using self.__dict__.__name__ I've got
>
>>>> def test():
> ...     print(self.__dict__.__name__)
> ...

Er, where did `self` magically come from?

>>>> test
> <function test at 0x0178DDF8>
>
> But I really just want the function name, so 'test'
>
> Any help?

Courtesy of the "Observations on the three pillars of Python execution" thread:

from inspect import currentframe

def foobar():
    my_name = currentframe().f_code.co_name
    print(my_name)

I would recommend against a function knowing its own name though,
unless it's for debugging or necessary metaprogramming purposes.

Cheers,
Chris



More information about the Python-list mailing list