为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

天涯尽头无女友 2019-08-09 17:53:23
如何在被调用的方法中获取调用者的方法名称?Python:如何在被调用的方法中获取调用者的方法名?假设我有两种方法:def method1(self):     ...     a = A.method2()def method2(self):     ...如果我不想对method1进行任何更改,如何在method2中获取调用者的名称(在此示例中,名称为method1)?
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超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

这种内省旨在帮助调试和开发; 不建议将其用于生产功能目的。


查看完整回答
反对 回复 2019-08-09
?
跃然一笑

TA贡献1826条经验 获得超6个赞

更短的版本:

import inspectdef f1(): f2()def f2():
    print 'caller name:', inspect.stack()[1][3]f1()


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 862 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信