如何从 python 代码中检索当前正在执行的函数?
How to retrieve current executing function from python code?
使用 IronPython 在 C# 中设置的 python 脚本引擎,有没有办法从 python 代码中检索当前执行的函数?
E. G。在我的代码中,设置 python 脚本引擎存储在变量 pse
中。是否有类似于pse.GetVariables()
的调用returns当前正在执行的python函数?
我希望能够提取此信息,以便我可以在测试中的检查中使用它,例如。
您可以为此使用跟踪功能。设置将为执行脚本的每一行调用的跟踪回调。从该回调中,您可以获得当前正在执行的函数名称。
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;
}
使用 IronPython 在 C# 中设置的 python 脚本引擎,有没有办法从 python 代码中检索当前执行的函数?
E. G。在我的代码中,设置 python 脚本引擎存储在变量 pse
中。是否有类似于pse.GetVariables()
的调用returns当前正在执行的python函数?
我希望能够提取此信息,以便我可以在测试中的检查中使用它,例如。
您可以为此使用跟踪功能。设置将为执行脚本的每一行调用的跟踪回调。从该回调中,您可以获得当前正在执行的函数名称。
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;
}