在Python中从内部函数获取外部函数的名称

3
考虑以下伪代码:
func1():
  func2() #func2 is called inside func1

我的问题是,在func2函数中,我能否访问调用它的函数的名称?在这种情况下,是func1吗?谢谢!


1
在99%的情况下,真的没有必要做这样的事情。变量名称不应以任何方式改变您的程序。我建议您查看您的问题并查看是否有其他替代方案。 - arshajii
2
我正在使用全局错误处理函数来记录错误,并希望检索调用全局错误的函数,因此我认为这对我的需求是合适的。 - TheoretiCAL
1个回答

11
import inspect

def func2():
    cframe = inspect.currentframe()
    func = inspect.getframeinfo(cframe.f_back).function
    print 'called from ' + func

def func1():
    func2()

func2()
func1()

输出:

called from <module>
called from func1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接