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
,然後列印出對應的x
及double(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 ...