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

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

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

假设我有两种方法:

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

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


天涯尽头无女友
浏览 863回答 3
3回答

万千封印

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这种内省旨在帮助调试和开发; 不建议将其用于生产功能目的。

跃然一笑

更短的版本:import inspectdef f1(): f2()def f2():     print 'caller name:', inspect.stack()[1][3]f1()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python