Python如何查找调用指定类的函数并在类中输出调用方名称
解决方案
可以实现,借助Python标准库的inspect模块读取调用栈信息即可,不需要额外安装第三方依赖。
完整实现代码如下:
import inspect class A: def __init__(self): # 调用栈索引1对应实例化A的上一层栈帧 caller_frame = inspect.stack()[1] # 获取调用方的函数名 caller_func = caller_frame.function print(f"i was used in: {caller_func}()") def my_func(): a = A() # 测试运行 my_func()
运行上述代码后会直接输出目标结果:i was used in: my_func()
如果类A是在全局作用域而非函数内部实例化,拿到的调用名会是<module>,可以根据实际需求补充对应适配逻辑。
内容的提问来源于stack exchange,提问作者Jeesson Johney
相关产品推荐
相关产品推荐

