小编典典

在Python中的另一个函数中获取调用者函数名称?

python

如果您有两个功能,例如:

def A
def B

并且A呼叫B,您能知道谁在B内部呼叫B时,例如:

def A () :
    B ()

def B () :
    this.caller.name

阅读 182

收藏
2020-12-20

共1个答案

小编典典

您可以使用检查模块获取所需的信息。它的堆栈方法返回帧记录列表。

  • 对于 Python 2, 每个帧记录都是一个列表。每个记录中的第三个元素是呼叫者名称。您想要的是:
    >>> import inspect
    

    def f():
    … print inspect.stack()[1][3]

    def g():
    … f()

    g()
    g


  • 对于 Python 3.5+ ,每个帧记录都是一个命名的元组,因此您需要替换
    print inspect.stack()[1][3]
    

    print(inspect.stack()[1].function)

在上面的代码上。

2020-12-20