检测是否从return语句调用函数

时间:2014-02-21 13:53:54

标签: python reflection return code-inspection

我正在使用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模块文档,但不知道该怎么做。

0 个答案:

没有答案