[英]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.