簡體   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