[英]Python profiling an inner function
我正在嘗試分析我的程序的一部分。 該模式如下所示:
def de():
def abc():
print("123")
cProfile.run('abc()')
當我嘗試運行此程序時,出現錯誤:File "", line 1, in NameError: name 'abc' is not defined
有沒有辦法解決這個錯誤?
發生在函數之外的所有事情,這意味着它們在全局范圍之外是隱藏的。
使用 runctx()。 請閱讀https://docs.python.org/3/library/profile.html#profile.runctx
import cProfile
def de():
def abc():
print("123")
cProfile.runctx('abc()', None, locals=locals())
de()
輸出:
"123"
5 function calls in 0.000 seconds
只是為了完整性:在您的情況下,您也可以這樣做
def de():
def abc():
print("123")
cProfile.run(abc.__code__)
de()
(創建與runctx
變體相同的輸出)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.