[ACCEPTED]-How to print the function name as a string in Python from inside that function-python

Accepted answer
Score: 21

This also works:

import sys

def applejuice(q):
    func_name = sys._getframe().f_code.co_name
    print func_name


Score: 10
def applejuice(**args):
    print "Running the function 'applejuice'"

or use:


>>> print applejuice.__name__

Also, see how-to-get-the-function-name-as-string-in-python


Score: 7
import traceback

def applejuice(q):
   stack = traceback.extract_stack()
   (filename, line, procname, text) = stack[-1]
   print procname

I assume this is used for debugging, so 3 you might want to look into the other procedures 2 offered by the traceback module. They'll let you print the 1 entire call stack, exception traces, etc.

Score: 3

Another way

import inspect 
def applejuice(q):
    print inspect.getframeinfo(inspect.currentframe())[2]


Score: 2

You need to explain what your problem is. Because 1 the answer to your question is:

print "applejuice"
Score: 1

This site gave me a decent explanation of 2 how sys._getframe.f_code.co_name works that 1 returns the function name.


Score: 0
def foo():
    # a func can just make a call to itself and fetch the name
    funcName = foo.__name__
    # print it
    print 'Internal: {0}'.format(funcName)
    # return it
    return funcName

# you can fetch the name externally
fooName = foo.__name__
print 'The name of {0} as fetched: {0}'.format(fooName)

# print what name foo returned in this example
whatIsTheName = foo()
print 'The name foo returned is: {0}'.format(whatIsTheName)


More Related questions