我正在使用inspect.getouterframes(inspect.currentframe())[1]
来获取Python 2.7中的调用者框架。
我想检查调用是否来自return语句。这是因为我正在与一个使用python作为一种工具包语言的系统接口,其中一些约定认为这很有用。
是否有结构化的方法来检查调用者是否正在从返回语句“执行当前帧” ?
我试图用inspect.getsourcelines(frame)
来检查源代码,但如果调用者代码很乱,那么它并不是特别好看:
if foo(3, 'ugly # evil\' :"string"', """hey"""): return called(1, # arg1
my_favorite_constant, 'very long stuff', 'bad conventions',3) # comment
called(*stuff) # hey, not return -ing anything here.
因此,进行结构检查比使用字符串解析更好。我正在浏览inspect模块文档,但不知道该怎么做。