Python-如何在被调用方法中获取调用者的方法名称?

发布于 2021-02-02 23:10:02

Python:如何在被调用方法中获取调用者的方法名称?

假设我有2种方法:

def method1(self):
    ...
    a = A.method2()

def method2(self):
    ...

如果我不想对method1进行任何更改,如何在method2中获取调用方的名称(在本示例中,名称为method1)?

关注者
0
被浏览
109
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    inspect.getframeinfo和其他相关功能inspect可以帮助:

    >>> import inspect
    >>> def f1(): f2()
    ... 
    >>> def f2():
    ...   curframe = inspect.currentframe()
    ...   calframe = inspect.getouterframes(curframe, 2)
    ...   print('caller name:', calframe[1][3])
    ... 
    >>> f1()
    caller name: f1
    

    该自省旨在帮助调试和开发;建议不要出于生产功能目的而依赖它。



知识点
面圈网VIP题库

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

去下载看看