电竞比分网-中国电竞赛事及体育赛事平台

分享

能夠讓開發(fā)人員節(jié)省時間的Python工具

 靜幻堂 2018-09-15
嬌兮心有之 2018-09-11 22:02:09

眾所周知Python含有非常豐富的庫以及一些開發(fā)工具,這些都可以讓開發(fā)人員更加舒適,今天小編就給大家介紹一個可以節(jié)省你的開發(fā)時間的Python技能工具。

Python調(diào)試器

什么是Python調(diào)試器?

Python 標準庫提供了一個名為 pdb 的調(diào)試器。此調(diào)試器提供了調(diào)試所需的大多數(shù)功能,如斷點、單行步進、堆棧幀的檢查等等。

如何運行pdb看下面的代碼:

能夠讓開發(fā)人員節(jié)省時間的Python工具

你可以從命令行運行 pdb,如下所示:

能夠讓開發(fā)人員節(jié)省時間的Python工具

使用 pdb 的另一種方法是在程序中設置斷點。為此,請導入 pdb 模塊并使用set_trace 函數(shù):

能夠讓開發(fā)人員節(jié)省時間的Python工具

能夠讓開發(fā)人員節(jié)省時間的Python工具

腳本在斷點處停止,pdb 顯示腳本中的下一行。 你也可以在失敗后執(zhí)行調(diào)試器。 這稱為事后調(diào)試postmortem debugging。

穿行于執(zhí)行堆棧

調(diào)試中的一個常見用例是在執(zhí)行堆棧中穿行。 Python 調(diào)試器運行后,可以使用以下命令:

w(here):顯示當前執(zhí)行的行以及執(zhí)行堆棧的位置。

能夠讓開發(fā)人員節(jié)省時間的Python工具

l(ist):顯示當前位置周圍更多的上下文(代碼)

能夠讓開發(fā)人員節(jié)省時間的Python工具

u(p)/d(own):向上或向下穿行調(diào)用堆棧。

能夠讓開發(fā)人員節(jié)省時間的Python工具

單步執(zhí)行程序

  • pdb提供以下命令來執(zhí)行和單步執(zhí)行代碼:
  • n(ext):繼續(xù)執(zhí)行,直到達到當前函數(shù)中的下一行,或者返回
  • s(tep):執(zhí)行當前行并在第一個可能的場合停止(在被調(diào)用的函數(shù)或當前函數(shù)中)
  • c(ontinue):繼續(xù)執(zhí)行,僅在斷點處停止。
能夠讓開發(fā)人員節(jié)省時間的Python工具

該示例顯示了 next 和 step 之間的區(qū)別。 實際上,當使用 step 時,調(diào)試器會進入 pdb 模塊源代碼,而接下來就會執(zhí)行 set_trace 函數(shù)。

檢查變量內(nèi)容

pdb 非常有用的地方是檢查執(zhí)行堆棧中存儲的變量的內(nèi)容。 例如,a(rgs) 命令打印當前函數(shù)的變量,如下所示:

能夠讓開發(fā)人員節(jié)省時間的Python工具

pdb 打印變量的值,在本例中是 10。

可用于打印變量值的另一個命令是 p(rint)。

能夠讓開發(fā)人員節(jié)省時間的Python工具

增強的調(diào)試器

一些增強的調(diào)試器提供了更好的用戶體驗。 大多數(shù)為 pdb 添加了有用的額外功能,例如語法突出高亮、更好的回溯和自省。 流行的增強調(diào)試器包括 IPython 的 ipdb 和 pdb++。

總結(jié)

學習如何使用 Python 調(diào)試器可以節(jié)省你在排查應用程序問題時的時間。 對于了解應用程序或某些庫的復雜部分如何工作也是有用的,從而提高 Python 開發(fā)人員的技能。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多