[ACCEPTED]-How to print the function name as a string in Python from inside that function-python
Accepted answer
This also works:
import sys
def applejuice(q):
func_name = sys._getframe().f_code.co_name
print func_name
0
def applejuice(**args):
print "Running the function 'applejuice'"
pass
or use:
myfunc.__name__
>>> print applejuice.__name__
'applejuice'
Also, see how-to-get-the-function-name-as-string-in-python
0
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.
Another way
import inspect
def applejuice(q):
print inspect.getframeinfo(inspect.currentframe())[2]
0
You need to explain what your problem is. Because 1 the answer to your question is:
print "applejuice"
This site gave me a decent explanation of 2 how sys._getframe.f_code.co_name works that 1 returns the function name.
http://code.activestate.com/recipes/66062-determining-current-function-name/
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)
0
Source:
stackoverflow.com
More Related questions
Cookie Warning
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.