PySnooper
hello,小夥們大家好,今天是給大家分享的開源項目是幫助Python開發者的debug工具,如果您正在嘗試弄清楚爲什麼您的Python代碼沒有按照您認爲的那樣做。您可能希望使用具有斷點和監視功能的成熟調試器,但現在不必爲設置一個調試器而煩惱。
您想知道哪些行正在運行,哪些不在,以及局部變量的值是什麼。
大多數人會print在戰略位置使用線條,其中一些線條顯示變量的值。
PySnooper允許您執行相同的操作,除了print只需要在感興趣的函數中添加一條裝飾器行,而不是精心製作正確的行。您將獲得函數的逐個播放日誌,包括運行了哪些行何時以及何時準確更改局部變量。
是什麼讓PySnooper在所有其他代碼智能工具中脫穎而出?您可以在繁瑣的企業代碼庫中使用它,而無需進行任何設置。只需使用裝飾器,如下所示,然後通過將其路徑指定爲第一個參數將輸出重定向到專用日誌文件。
import pysnooper
@pysnooper.snoop()
def number_to_bits(number):
if number:
bits = []
while number:
number, remainder = divmod(number, 2)
bits.insert(0, remainder)
return bits
else:
return [0]
number_to_bits(6)
Source path:... /my_code/foo.py
Starting var:.. number = 6
15:29:11.327032 call 4 def number_to_bits(number):
15:29:11.327032 line 5 if number:
15:29:11.327032 line 6 bits = []
New var:....... bits = []
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 0
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 10 return bits
15:29:11.327032 return 10 return bits
Return value:.. [1, 1, 0]
或者,如果您不想跟蹤整個函數,則可以將相關部分包裝在一個with塊中:
import pysnooper
import random
def foo():
lst = []
for i in range(10):
lst.append(random.randrange(1, 1000))
with pysnooper.snoop():
lower = min(lst)
upper = max(lst)
mid = (lower + upper) / 2
print(lower, mid, upper)
foo()
New var:....... i = 9
New var:....... lst = [681, 267, 74, 832, 284, 678, ...]
09:37:35.881721 line 10 lower = min(lst)
New var:....... lower = 74
09:37:35.882137 line 11 upper = max(lst)
New var:....... upper = 832
09:37:35.882304 line 12 mid = (lower + upper) / 2
74 453.0 832
New var:....... mid = 453.0
09:37:35.882486 line 13 print(lower, mid, upper)
安裝方法
pip install pysnooper
項目地址:https://github.com/cool-RR/PySnooper
今天的推薦不知道大家喜歡嗎?如果你們喜歡話,請在文章底部留言或點贊,以表示對我的支持,你們的留言,點贊,轉發關注是我持續更新的動力哦!
關注我的公衆號回覆:"1024
",免費領取一大波學習資源,先到先得哦!