Python模塊之pysnooper


一、簡介

調試程序時,很多人喜歡直接用print來代替斷點調試,而pysnooper模塊比print更方便,以裝飾器的形式存在

 

二、實驗環境

  操作系統:win10


  python版本:python3.6


三、安裝pysnooper模塊


  pip3 install pysnooper


四、簡單實例

  需求:屏幕打印每個變量的值

import pysnooper

@pysnooper.snoop()
def test():
    a = 100*1
    sum=0
    for i in range(10):
        sum +=i
    sum2 = sum +a
    return sum2

if __name__ == '__main__':
    test()

  結果輸出:

17:07:38.982924 call         4 def test():
17:07:38.982924 line         5     a = 100*1
New var:....... a = 100
17:07:38.982924 line         6     sum=0
New var:....... sum = 0
17:07:38.982924 line         7     for i in range(10):
New var:....... i = 0
17:07:38.982924 line         8         sum +=i
17:07:38.982924 line         7     for i in range(10):
Modified var:.. i = 1
17:07:38.982924 line         8         sum +=i
Modified var:.. sum = 1
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 2
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 3
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 3
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 6
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 4
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 10
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 5
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 15
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 6
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 21
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 7
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 28
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 8
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 36
17:07:38.983889 line         7     for i in range(10):
Modified var:.. i = 9
17:07:38.983889 line         8         sum +=i
Modified var:.. sum = 45
17:07:38.983889 line         7     for i in range(10):
17:07:38.983889 line         9     sum2 = sum +a
New var:....... sum2 = 145
17:07:38.983889 line        10     return sum2
17:07:38.983889 return      10     return sum2
Return value:.. 145
結果

 

五、pysnooper.snoop傳參介紹

output='a.txt'        #將結果保存到文件a.txt
variables=('a')     #打印非局部變量a的值
depth=1             #Show snoop lines for functions that your function calls
prefix='hello'      #在每一行打印信息前添加hello

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM