伊人久久中文大香线蕉综合_在线成人国产公开视频_中文字幕v亚洲日本在线_AV在线黑人无码

您現(xiàn)在所在的位置:首頁(yè) >關(guān)于奇酷 > 行業(yè)動(dòng)態(tài) > Python培訓(xùn),用 print 輸出來調(diào)試代碼的方法過時(shí)了!

Python培訓(xùn),用 print 輸出來調(diào)試代碼的方法過時(shí)了!

來源:奇酷教育 發(fā)表于:

奇酷教育-Python培訓(xùn)_Python教程_Python基礎(chǔ)教程

       很多時(shí)候我們?cè)趯W(xué)Python培訓(xùn)時(shí)老師都會(huì)教我們?cè)?/span>Python編程中用print 輸出來調(diào)試代碼,但是奇酷今天想要告訴你的是這種方法過時(shí)了,現(xiàn)在大家都在用PySnooper,你可知道?

4 月 23 日,GitHub 每日趨勢(shì)榜第一位是一個(gè) Python 相關(guān)項(xiàng)目:PySnooper。

該項(xiàng)目很快獲取 2200 Star。

PySnooper 是個(gè)什么東西?

Python培訓(xùn),用 print 輸出來調(diào)試代碼的方法過時(shí)了!

如果你寫的 Python 代碼不能按如期那樣運(yùn)行,你會(huì)絞盡腦汁想為啥出錯(cuò)了。雖然你希望有支持?jǐn)帱c(diǎn)的成熟調(diào)試器,但或許你現(xiàn)在不想去設(shè)置這樣的調(diào)試器。

你想知道哪些行代碼是正常運(yùn)行,哪些行不正常。據(jù)說大多數(shù)人會(huì)在可疑位置使用 print 輸出語(yǔ)句。

其實(shí) PySnooper 的作用有點(diǎn)類似,你不用小心謹(jǐn)慎地用 print 輸出語(yǔ)句,只需在想調(diào)試的函數(shù)中引入一個(gè)裝飾器。然后得到函數(shù)的詳細(xì)日志,包括運(yùn)行了哪些行、何時(shí)運(yùn)行,以及何時(shí)更改了局部變量。

為什么 PySnooper 能從其他智能調(diào)試工具中脫穎而出?

因?yàn)槟憧梢栽诓恍枰M(jìn)行任何設(shè)置的情況下將其用于糟糕的、龐大的企業(yè)代碼庫(kù)中。只需打開裝飾器(如下示例所示),并將輸出重定向到一個(gè)專用的日志文件,將日志文件路徑指定為第一個(gè)參數(shù)。

使用范例

范例是一個(gè)把數(shù)字轉(zhuǎn)成二進(jìn)制的函數(shù)。

 

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]

umber_to_bits(6)

輸出范例

 

Starting var:.. number = 6
21:14:32.099769 call         3 @pysnooper.snoop()
21:14:32.099769 line         5     if number:
21:14:32.099769 line         6         bits = []
New var:....... bits = []
21:14:32.099769 line         7         while number:
21:14:32.099769 line         8             number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
21:14:32.099769 line         9             bits.insert(0, remainder)
Modified var:.. bits = [0]
21:14:32.099769 line         7         while number:
21:14:32.099769 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
21:14:32.099769 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
21:14:32.099769 line         7         while number:
21:14:32.099769 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 0
21:14:32.099769 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
21:14:32.099769 line         7         while number:
21:14:32.099769 line        10         return bits
21:14:32.099769 return      10         return bits
  以上就是奇酷為大家分享的“Python培訓(xùn),用 print 輸出來調(diào)試代碼的方法過時(shí)了!”謝謝大家觀看,如果對(duì)Python感興趣的話,想學(xué)Python培訓(xùn)的,也可以在線咨詢,我們將竭誠(chéng)為你解答。