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

发布于 2021-01-29 19:37:16

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

def A
def B

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

def A () :
    B ()

def B () :
    this.caller.name
关注者
0
被浏览
178
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    • 对于 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)
    

    在上面的代码上。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看