我想做一个函数来确定它是如何被调用的源代码。我知道通常如何使用检查模块执行此操作。例如,这个问题运行良好,并在变量中提供了我想要的输出,lines
如下所示:
def hello(x):
frame,filename,line_number,function_name,lines,index=\
inspect.getouterframes(inspect.currentframe())[1]
print(frame,filename,line_number,function_name,lines,index)
问题是这个解决方案在交互式命令行会话中不起作用。例如,在命令行中,结果如下所示:
>>> y = hello(7)
(<frame object at 0x01ECA9E8>, '<stdin>', 1, '<module>', None, None)
问题是源文件是'<stdin>'
,所以lines
变量是None
。如何y = hello(7)
在交互式会话期间访问调用线路以查找包含字符串的结果?