日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
像老大一樣調試Python
 
 
 
 
  1. def make_pie(self, ingredients):
  2.     print '******WHAT IS GOING ON HERE******'
  3.     print ingredients
  4.     self.oven.preheat()
  5.     print self.oven.temperature

上面的一段代碼有木有很像你平時調試代碼的樣子?好吧,我原來也是這樣。老實說,這并不壞。敲一些print進去,運行代碼,然后看會發(fā)生什么。你肯定需要在輸出里面翻來翻去的,但你能找到你想要的結果。至少,當你知道你想要什么。不過通常不是這樣,如果你知道檢驗些什么,你可能就不會需要打印那些 輸出了。反而,你把一些print代碼扔到你覺得可能有問題的地方,然后反復的移動這些語句,知道發(fā)現(xiàn)真正的bug。就是二分查找嘛!

成都創(chuàng)新互聯(lián)公司專注于舞陽企業(yè)網站建設,成都響應式網站建設,成都商城網站開發(fā)。舞陽網站建設公司,為舞陽等地區(qū)提供建站服務。全流程按需定制制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

謝天謝地,有一個更好的方法。從C語言開始,有一類被稱為調試器的工具在每種語言里都出現(xiàn)了。Python也不例外,里面就有一個默認的調試器。還有一些社區(qū)開發(fā)的很酷的調試器。在接下來的內容里,我會談談一些比較流行的調試工具。

Pdb

首先來說Python里內建的調試器,pdb。它利用一個簡單的命令行界面,還有很多你在用調試器時用得上的功能。幫助系統(tǒng)能為你指出你能運行的命令,比如單步調試代碼,操縱調用棧和設置斷點。

一些它缺少的功能:按tab能讓本地變量自動補全和讓代碼和棧追蹤更好看的配色和布局。

不管你最后決定使用哪種調試器,pdb是值得你花時間了解它的,有兩個原因:1)它在Python里總是可用的 2)很多其他的調試器的功能是pdb的超集,先學pdb能讓你更快的學習其他的調試器。

總之,如果有更好的還是用別的調試器吧。

Pydbgr

接下來是pydbgr(支持Python 3.2+ 版本),這個項目是對pydb調試器的重寫。它提供了與pdb非常相似的一組命令,盡管如此,有一些有用的別名比如’u’表示’up’是沒有的。

這個調試器做得很好的一點是能夠對執(zhí)行流向進行細粒度地控制。你可以輸入命令并指定命令重復執(zhí)行的次數。你也可以告訴調試器在某些事件觸發(fā)時停止,比如函數調用和返回,這能讓你減少很多調試的步數。

調試器的另一個特性是提供了其他調試器沒有的功能,它能通過像examine 和disassemble這樣的命令來進行非常低級別的符號檢查。說實話,我不太確定這個功能在web開發(fā)里被證明很有用,但它能讓你的工作很不同。

總之:它對pdb添加的特性我覺得不是對web開發(fā)很有用的。

pudb

這個調試器里最明顯的亮點就是它在終端里融合了一個迷你圖形界面。這很正確,這不是一個分開的窗口,這是在終端里面。除了一組用于強調的默認顏色(它能夠定制或選擇一組默認的主題),這在調試器的交互上是一個新穎的嘗試。

左邊的面板顯示當前文件的代碼(或者你在棧里上下移動的其他文件)。導航欄非常棒,包含箭頭鍵(以及’hjkl’對喜愛vim的群眾),搜索,并且 能用模糊查詢打開其他的模塊。能把這些簡單的行為用一個快捷鍵結合起來執(zhí)行光標位置的代碼,并且有非常直觀和友好的方式來單步調試程序。當然,pudb仍 然提供了正常的斷點和單步命令使你能隨心所愿地控制代碼的執(zhí)行。

在右邊,有幾個面板來追蹤當前的本地變量,棧,和存在的斷點。這在你鍵入 locals(),whereh或者用tab完成來反射當前框架時與典型的終端調試器非常不一樣,

這個調試器的另一個優(yōu)點是它支持事后分析。當你命中一個異常,調試器會用一個很快的鍵來提示你這個異常。它也能讓你直接跳到發(fā)生了異常的那一行,同時能讓棧和變量保持完好。

總結:擁有這堆調試器里最好的用戶體驗;對于棧追蹤特別有用。

Ipdb

最后一個就是iPython里的ipdb。就像它的 *pdb 的兄弟們,它的界面是一個簡單的命令行并且它的幫助系統(tǒng)是個非常值得深入研究的地方。讓這貨與眾不同的是它使用了一個iPython shell,所以所有的tab 完成和對象反射的功能都用,能幫你發(fā)現(xiàn)究竟發(fā)生了什么。把這些與很棒的語法高亮和一個擁有最好的格式化的where命令結合起來,就組成了一個干掉bug 的完美工具。

總結:這是最棒的一個也是本人的最愛。

我會提到,根據情況,我切換到pudb。它確實在瀏覽代碼是如何運行方面是最棒的(比如當你必須鉆研一個除了毛病的第三方庫)。而我為什么最傾向于 ipdb,是因為大部分時候我對代碼都很熟悉,并不需要一個大圖片。我需要知道在一個指定的函數里是什么狀態(tài)。把它們結合起來,就是超級超級NB的東西啦!


新聞名稱:像老大一樣調試Python
網站路徑:http://www.5511xx.com/article/cdjigec.html