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

如何从函数内部将函数名打印为Python中的字符串,python,Python,它将导致“appleguice”作为字符串。您需要解释您的问题所在。因为你的问题的答案是: def applejuice(q): print THE FUNCTION NAME! 或使用: def applejuice(**args): print "Running the function 'applejuice'" pass 另外,请参见 我假设这是用于调试的,所以您可能希望查看由提供的其他过程。它们将允许您打印整个调用堆栈、异常跟踪等。另一种方法 import t

它将导致“appleguice”作为字符串。

您需要解释您的问题所在。因为你的问题的答案是:

def applejuice(q):
   print THE FUNCTION NAME!
或使用:

def applejuice(**args):
    print "Running the function 'applejuice'"
    pass
另外,请参见

我假设这是用于调试的,所以您可能希望查看由提供的其他过程。它们将允许您打印整个调用堆栈、异常跟踪等。

另一种方法

import traceback

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

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

这个网站给了我一个很好的解释,解释了sys.\u getframe.f\u code.co\u name如何返回函数名


也许他的意思是:def func(anothah_func):打印anothah_func的名字好吧,这是绝对可能的。我们会看看他是否说了问题所在。从你选择的答案来看,我们可以得出结论,这确实是一个重复。事实上,一个几乎完全相同的问题已经存在:我不同意这是#251464的重复——看起来这个问题是相反的。在这种情况下,它应该打印什么:
def applequice():打印“thefunctionname”;orangejuice=应用程序向导;应用指南;橘子汁()请改成这样!请考虑提供解释,而不仅仅是指向外部链接。这不是函数内部的
import traceback

def applejuice(q):
   stack = traceback.extract_stack()
   (filename, line, procname, text) = stack[-1]
   print procname
import inspect 
def applejuice(q):
    print inspect.getframeinfo(inspect.currentframe())[2]
import sys

def applejuice(q):
    func_name = sys._getframe().f_code.co_name
    print func_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)