如何在函数内部将函数名称作为字符串打印在Python中

TIM*_*MEX 9 python

def applejuice(q):
   print THE FUNCTION NAME!
Run Code Online (Sandbox Code Playgroud)

它应该导致"applejuice"作为一个字符串.

Jef*_*f B 19

这也有效:

import sys

def applejuice(q):
    func_name = sys._getframe().f_code.co_name
    print func_name
Run Code Online (Sandbox Code Playgroud)


Nop*_*ope 8

def applejuice(**args):
    print "Running the function 'applejuice'"
    pass
Run Code Online (Sandbox Code Playgroud)

或使用:

myfunc.__name__

>>> print applejuice.__name__
'applejuice'
Run Code Online (Sandbox Code Playgroud)

另外,请参阅how-to-get-the-function-name-as-string-in-python


Joh*_*kin 7

import traceback

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

我假设这用于调试,因此您可能希望查看traceback模块提供的其他过程.它们可以让你打印整个调用堆栈,异常跟踪等.