Python:如何在被调用的方法中获取调用者的方法名称?
假设我有两种方法:
def method1(self):
...
a = A.method2()
def method2(self):
...
如果我不想对method1做任何改变,如何在method2中获取调用者的名字(在这个例子中,名字是method1)?
原文由 zs2020 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python:如何在被调用的方法中获取调用者的方法名称?
假设我有两种方法:
def method1(self):
...
a = A.method2()
def method2(self):
...
如果我不想对method1做任何改变,如何在method2中获取调用者的名字(在这个例子中,名字是method1)?
原文由 zs2020 发布,翻译遵循 CC BY-SA 4.0 许可协议
较短的版本:
import inspect
def f1(): f2()
def f2():
print 'caller name:', inspect.stack()[1][3]
f1()
(感谢@Alex 和 Stefaan Lippen )
原文由 Todd Owen 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答862 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
inspect
中的 inspect.getframeinfo 和其他相关函数可以帮助:这种自省旨在帮助调试和开发;不建议将其用于生产功能目的。