James Thiele <[EMAIL PROTECTED]> 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
--
http://mail.python.org/mailman/listinfo/python-list