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

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
像老大一樣調(diào)試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

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

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

謝天謝地,有一個(gè)更好的方法。從C語(yǔ)言開始,有一類被稱為調(diào)試器的工具在每種語(yǔ)言里都出現(xiàn)了。Python也不例外,里面就有一個(gè)默認(rèn)的調(diào)試器。還有一些社區(qū)開發(fā)的很酷的調(diào)試器。在接下來的內(nèi)容里,我會(huì)談?wù)勔恍┍容^流行的調(diào)試工具。

Pdb

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

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

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

總之,如果有更好的還是用別的調(diào)試器吧。

Pydbgr

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

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

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

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

pudb

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

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

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

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

總結(jié):擁有這堆調(diào)試器里最好的用戶體驗(yàn);對(duì)于棧追蹤特別有用。

Ipdb

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

總結(jié):這是最棒的一個(gè)也是本人的最愛。

我會(huì)提到,根據(jù)情況,我切換到pudb。它確實(shí)在瀏覽代碼是如何運(yùn)行方面是最棒的(比如當(dāng)你必須鉆研一個(gè)除了毛病的第三方庫(kù))。而我為什么最傾向于 ipdb,是因?yàn)榇蟛糠謺r(shí)候我對(duì)代碼都很熟悉,并不需要一個(gè)大圖片。我需要知道在一個(gè)指定的函數(shù)里是什么狀態(tài)。把它們結(jié)合起來,就是超級(jí)超級(jí)NB的東西啦!


網(wǎng)站題目:像老大一樣調(diào)試Python
轉(zhuǎn)載注明:http://m.5511xx.com/article/cdjigec.html