簡體   English   中英

Python 分析內部函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM