追踪函数工具.parti

2024-07-01 07:54:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在,我正在构建一个调用functools.partial的函数。这部分完全符合我的需要。在

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

有没有一种方法可以将functools.partial对象转换为代码对象,以便正确调用trace?在

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


Tags: 模块项目对象函数run代码traceargs
2条回答

这行吗?在

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

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

来自the docs

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

相关问题 更多 >

    热门问题