如何从python代码中检索当前执行的函数?

时间:2018-06-19 02:41:57

标签: c# python ironpython

使用使用IronPython在C#中设置的python脚本引擎,有没有办法从python代码中检索当前执行的函数?

电子。 G。在我的代码中,setup python脚本引擎存储在变量setInterval中。是否有类似于if (e.lengthComputable) { const endWidth = 100 * e.loaded / + e.total; const intervalId = setInterval(() => { const width = parseInt(barElement.style.width, 10); if (width >= endWidth) { clearInterval(intervalId); } else { width += 2; barElement.style.width = width + '%'; } }, 40); } 的调用返回当前正在执行的python函数?

我希望能够提取这些信息,以便我可以在测试中使用它,例如。

1 个答案:

答案 0 :(得分:0)

您可以使用跟踪功能。设置将为执行脚本的每一行调用的跟踪回调。从该回调中,您可以获取当前正在执行的函数名称。

pse.SetTrace(IronPythonTraceCallbaback);

回调定义:

static TracebackDelegate IronPythonTraceBack(TraceBackFrame frame, string result, object payload)
{
    if (frame != null && frame.f_code != null)
    {
         // Here you can access the executing function information
         FunctionCode functionCode = frame.f_code;
         string functionName = frame.f_code.co_name;
    }

    return IronPythonTraceBack;
}