日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

调试Python代码

發(fā)布時間:2023/12/20 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调试Python代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一般來說,我們不會在代碼里包含錯誤(嘻嘻),但為了極少數(shù)可能遭遇不幸的朋友,這里介紹現(xiàn)實世界里的Python程序員調(diào)試代碼時候常用的一些策略:

  • 什么也不做
    我這么講并不是說Python程序員不需要調(diào)試自己的代碼,但是,當你在一個Python程序中犯錯的時候,會得到一條非常有用且容易讀懂的出錯消息(如果你已經(jīng)有了一些錯誤的話)。如果你已經(jīng)了解Python,特別是如果你已經(jīng)熟悉自己的代碼了,那么這么做就通常夠了——閱讀出錯消息,并修改標記的行和文件。對于很多人來說,這就是Python里的調(diào)試。但是,對于你沒有編寫過的大型系統(tǒng)來說,這并不總是理想的做法。

  • 插入print語句
    可能Python的程序員調(diào)試自己的代碼的主要方式(以及我調(diào)試Python程序的方式)這就是插入print語句并再次運行。由于Python在修改后立即運行,這通常是獲取比錯誤信息所提供的更多信息的一種快捷方式。print語句不必很復雜,一條“I’m here”或變量值的提示,通常就能夠提供你所需的足夠信息,只是別忘了,在發(fā)布你的代碼之前,刪除掉或者注釋掉(如在前面添加#)用來調(diào)試的print。

  • 使用IDE GUI調(diào)試器
    對于你沒有編寫過較大的系統(tǒng),以及對于那些想要更詳細地追蹤代碼地初學者,大多數(shù)Python開發(fā)GUI都有某種指向點擊調(diào)試器,IDLE也有一個調(diào)試器,但它在實際過程中并不常用,可能是因為它沒有命令行,或者可能是因為添加print語句通常比設(shè)置一個GUI調(diào)試會話要快。要了解更多的內(nèi)容,查閱IDLE的幫助,或者直接自己嘗試。其他的IDE(如Eclipse、NetBeans、Komodo和WingIDE)也都是提供了高級的指向點擊調(diào)試器。

  • 使用pdb命令行調(diào)試器
    為了實現(xiàn)最終控制,Python附帶了一個名為pdb的源代碼調(diào)試器,可以作為Python的標準庫中的一個模塊使用。在pdb中,我們輸入命令來一行一行的步進執(zhí)行,顯示變量,設(shè)置和清除斷點,繼續(xù)執(zhí)行到一個斷點或錯誤。你可以通過導入交互式地啟動pdb,或者作為一個頂層腳本啟動。不管采用哪種方式,我們可以輸入命令來控制會話,他都提供了強大的調(diào)試工具。pdb還包含了一個postmortem函數(shù)(pdb.pm()),可以在異常發(fā)生后執(zhí)行它,從而獲取發(fā)生錯誤的信息。

  • 使用Python的-i命令行參數(shù)
    除了添加打印或在pdb下運行外,你仍然能夠看見是什么出了錯。如果你從命令行運行腳本,并在Python和腳本名稱之間傳遞了-i參數(shù)(即python -i m.py),當你的腳本退出時,Python就會進入到它的交互解釋器模式(>>>提示符),無論他是成功地結(jié)束還是產(chǎn)生錯誤。此時此刻,你可以打印變量的最終值來獲得關(guān)于代碼中所發(fā)生的更多細節(jié),因為他們處于頂層的命名空間。甚至這之后你還可以導入和運行pdb調(diào)試器以了解更多的相關(guān)背景;如果腳本運行失敗,它的算后檢查模式將允許你檢查最新的錯誤。

  • 其他選項
    如果有更具體的調(diào)試需求,你可以在開源領(lǐng)域找到其它的工具,包括支持多線程程序、嵌入式代碼和進程附件的工具。例如,Winpdb系統(tǒng)是一個獨立的調(diào)試器,具有高級的調(diào)試支持、跨平臺的GUI和控制臺界面。

隨著我們開始編寫較大的腳本,這些選項將變得更加重要。然而,關(guān)于調(diào)試最好的消息可能時在Python中檢測出并報告錯誤,而不是默默地傳遞錯誤或最終倒是系統(tǒng)崩潰。實際上,錯誤本身是一種定義良好的機制,成為異常,我們可以捕獲并處理它們。當然犯錯并不好玩,但是正如某人回憶到,當進行調(diào)試意味著最終得出一個十六進制計算器和仔細鉆研成堆的內(nèi)存轉(zhuǎn)儲輸出的時候:有了Python的調(diào)試器支持,所犯的錯誤不會像沒有調(diào)試器的情況下那樣的令人痛苦不堪。

總結(jié)

以上是生活随笔為你收集整理的调试Python代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。