Accessing func_name from inside a function
Alex Martelli
aleaxit at yahoo.com
Sun Mar 26 16:26:07 EST 2006
James Thiele <jamesthiele.usenet at gmail.com> wrote:
> 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
So, define it -- as a function, of course:
def func_name():
import sys
return sys._getframe(1).f_code.co_name
def foo():
print func_name()
def bar():
print func_name()
No doubt you'll object that the internals of func_name are "ugly", but
the point is that it can be hidden anywhere you like, so its internals
are as irrelevant as they would be if it was a built-in.
Alex
More information about the Python-list
mailing list