Python的兩種debug方法

print大法固然好,但是在print大法不work的時候還有其他更炫酷的方法。那就是在代碼裏內置assert。在代碼中內置assert語句可以減少你的debug範圍。另一種方法就是在debug時使用pysnooper這個包。pysnooper的好誰用誰知道。

assert

## assert的異常參數,其實就是在斷言表達式後添加字符串信息,
用來解釋斷言並更好的知道是哪裏出了問題。格式如下:
assert expression [, arguments]
assert 表達式 [, 參數]
lists = ['a','b','c']
assert lists[0] == 'a', '列表的第一個元素不爲"a"'
assert len(lists) >=5, '列表元素個數小於5'

返回的結果如下。如果不滿足表達式,則會raise後面的arguments信息。
在這裏插入圖片描述

pysnooper

python還有一種debug方法就是使用pysnooper這個包。這個包已經封裝地很好了。

引自機器之心

一般情況下,想要知道哪一行代碼在運行、哪一行不運行、本地變量的值是多少時,大部分人會使用 print 函數,在關鍵部分打印某個或某組變量的值、形狀、類型等信息。
而 PySnooper 讓你能快速地獲得這些信息,且相比之下它不需要細緻地寫 print 函數,只需要向感興趣的函數增加一個裝飾器就行了。我們會得到該函數的詳細 log,包含哪行代碼能運行、什麼時候運行以及本地變量變化的確切時間。

import pysnooper

@pysnooper.snoop()
def multiple(num):
    count = 1
    for i in range(1,num+1):
        count *= i
        
    return count

multiple(5)

你只需要在函數的前面寫上@pysnooper.snoop()就行了,然後它就會打印出函數運行過程中的所有信息,就是這麼簡單粗暴。
以下是輸出結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章