Dynamic function calling

Alex Martelli aleaxit at yahoo.com
Fri Sep 1 15:55:32 EDT 2000


"Olaf Meyer" <olaf.meyer at nokia.com> wrote in message
news:39AFF1FB.2A51DB10 at nokia.com...
> Thanks to all of you for the suggestions! I do have anoter small question:
> Is it possible to determine the name of the currently executing function?

Sure -- piece o' cake...:


def caller(n=1):
    from traceback import extract_stack
    stack = extract_stack()
    return stack[-n-2][2]

# Example usage:

def a():
    print "this is", caller(0)
    b()

def b():
    print "and this is",caller(0),
    print "called by",caller()


Expected output by calling a():

this is a
and this is b called by a


Alex







More information about the Python-list mailing list