没有装饰器的堆栈执行(python方法)

时间:2016-12-15 01:46:37

标签: python metaprogramming

我请求帮助解决以下问题:访问方法堆栈,使用函数(值)的“函数名称”,“参数”和刚刚执行的返回。

简而言之:获取方法的执行链,包括名称,参数和返回。

有没有办法在每个方法中执行而不添加装饰器

我已经尝试过使用traceback模块,但它不起作用,因为它只显示下面主方法的“后退”字符串。

我尝试使用StackSummary / FrameSummary,但也没有成功=(

def func_a(param_a1):
    print('Executing function A with: {0}'.format(param_a1))
    func_b("a", "b")

    return "ok"

def func_b(param_b1, param_b2):
    print('Executing function B with: {0}, {1}'.format(param_b1, param_b2))
    return None

def func_c():
    print('Executing function C without args')
    return None


if __name__ == '__main__':
    # Call function_a()
    func_a("testing params")

    # Get here???
    # call func_a("testing params")
    #    -> call func_b("a", "b")
    #         -> call func_c()
    #            returning None
    #       returning None
    # returning "ok"

感谢您的关注

0 个答案:

没有答案