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

14 投票
7 回答
27627 浏览
提问于 2025-04-15 14:55
def applejuice(q):
   print THE FUNCTION NAME!

这段代码的结果应该是一个字符串,内容是“applejuice”。

7 个回答

8
import traceback

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

我想这段话是说这个功能可能是用来调试的,所以你可以看看 traceback 模块 提供的其他方法。它们可以帮助你打印出整个调用堆栈、异常追踪等等。

11
def applejuice(**args):
    print "Running the function 'applejuice'"
    pass

或者使用:

myfunc.__name__

>>> print applejuice.__name__
'applejuice'

另外,可以查看 如何在Python中获取函数名作为字符串

22

这个方法也可以用:

import sys

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

撰写回答