繁体   English   中英

用functools.partial跟踪

[英]trace with functools.partial

我正在使用trace模块跟踪代码执行的项目。
当我调用trace.Trace(args).run(stuff)stuff必须是代码对象或字符串。

现在,我正在构建要通过调用functools.partial来调用的函数。 这部分完全按照我的需要工作。

但是,当我到达跟踪部分时,我无法使用functools.partial对象执行跟踪。 我不能使用myFuncToolsPartialObject.func.func_name(args)因为我不能保证该函数将被导入本地范围。 我可以通过调用import来解决此问题,但目前不愿意(我们称其为个人喜好)。

有没有一种方法可以将functools.partial对象转换为代码对象以进行适当的跟踪?

我知道我可以要求myFuncToolsPartialObject.func.func_code ,但是我不知道如何在必需的参数上调用它

事实证明, trace仅对此用例具有内置支持。 trace.Trace().runfunc(funcObject, *args)正是这样做的。

文档

runfunc(func, *args, **kwds)
Call func with the given arguments under control of the Trace object with the current tracing parameters.

这样行吗?

trace.Trace().run((lambda :partial_stuff(args)).func_code)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM