Python實用模組之pysnooper

2021-10-14 02:14:55 字數 2132 閱讀 9772

pysnooper是乙個用於**除錯的乙個第三方庫,原始碼位址是 專案簡介中只有一句話,never use print for debugging again。相信很多人,特別是新手都是用print來進行**除錯的,那這個專案就能讓你擺脫print語句,讓你的**除錯更加高效。

我們還是使用pip安裝

pip install pysnooper
這裡簡單寫個函式double,在函式double加上裝飾器@pysnooper.snoop()

import pysnooper

@pysnooper.snoop()

def double(a):

return 2 * a

if __name__ == '__main__':

for x in range(5):

double(x)

執行結果如下

c:\users\admin\anaconda3\python.exe d:/xugaoxiang/blog/py_snooper.py

source path:... d:/xugaoxiang/blog/py_snooper.py

starting var:.. a = 0

22:33:48.473690 call 18 def double(a):

22:33:48.474685 line 19 return 2 * a

22:33:48.474685 return 19 return 2 * a

return value:.. 0

starting var:.. a = 1

22:33:48.474685 call 18 def double(a):

22:33:48.474685 line 19 return 2 * a

22:33:48.474685 return 19 return 2 * a

return value:.. 2

starting var:.. a = 2

22:33:48.474685 call 18 def double(a):

22:33:48.474685 line 19 return 2 * a

22:33:48.474685 return 19 return 2 * a

return value:.. 4

starting var:.. a = 3

22:33:48.474685 call 18 def double(a):

22:33:48.474685 line 19 return 2 * a

22:33:48.474685 return 19 return 2 * a

return value:.. 6

starting var:.. a = 4

22:33:48.474685 call 18 def double(a):

22:33:48.474685 line 19 return 2 * a

22:33:48.474685 return 19 return 2 * a

return value:.. 8

process finished with exit code 0

可以看到,for迴圈執行的每一步及其double函式的返回值。如果沒有使用pysnooper的話,那可能就是在for迴圈中加入print,然後列印出對應的xdouble(x)了。

如果希望將標準輸出的內容重定向到檔案,可以修改

@pysnooper.snoop('log.txt')

def double(a):

return 2 * a

Python中 os shutil 模組實用方法

os.sep 可以取代作業系統特定的路徑分隔符。windows下為 os.name 字串指示你正在使用的平台。比如對於windows,它是 nt 而對於linux unix使用者,它是 posix os.getcwd 函式得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getenv ...

python中的實用模組 python中的常用模組

python中常用的模組 time 1 time.localtime secs 將乙個時間戳轉換為當前時區的struct time。secs引數未提供,則以當前時間為準。2 time.gmtime secs 和localtime 方法類似,gmtime 方法是將乙個時間戳轉換為utc時區 0時區 的...

ansible實用模組

1.copy本機檔案到hosts的node1主機組內各主機。ansible node1 mcopy a src home ecip mm mm shutdown.sh dest home ecip mm mode 775 2.在node1組內各主機執行命令 ansible node2 mshell ...