黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Python 調(diào)試線程應(yīng)用程序

在本章中,我們將學(xué)習(xí)如何調(diào)試線程應(yīng)用程序。我們還將了解調(diào)試的重要性。

 

什么是調(diào)試?

在計(jì)算機(jī)編程中,調(diào)試是從計(jì)算機(jī)程序中查找和刪除錯(cuò)誤,錯(cuò)誤和異常的過(guò)程。一旦代碼被編寫(xiě)就開(kāi)始該過(guò)程,并且隨著代碼與其他編程單元組合以形成軟件產(chǎn)品,該過(guò)程在連續(xù)階段中繼續(xù)。調(diào)試是軟件測(cè)試過(guò)程的一部分,是整個(gè)軟件開(kāi)發(fā)生命周期中不可或缺的一部分。

 

python調(diào)試器

python調(diào)試器或 pdb 是python標(biāo)準(zhǔn)庫(kù)的一部分。它是一個(gè)很好的后備工具,用于跟蹤難以發(fā)現(xiàn)的錯(cuò)誤,并允許我們快速可靠地修復(fù)錯(cuò)誤的代碼。以下是 pdp 調(diào)試器的兩個(gè)最重要的任務(wù)

  • 它允許我們?cè)谶\(yùn)行時(shí)檢查變量的值。
  • 我們也可以單步執(zhí)行代碼并設(shè)置斷點(diǎn)。

我們可以通過(guò)以下兩種方式使用pdb

  • 通過(guò)命令行; 這也稱為事后調(diào)試。
  • 通過(guò)交互式運(yùn)行pdb。

使用pdb

要使用python調(diào)試器,我們需要在我們想要進(jìn)入調(diào)試器的位置使用以下代碼

import pdb;
pdb.set_trace()

請(qǐng)考慮以下命令以通過(guò)命令行使用pdb。

  • h(help)
  • d(down)
  • u(up)
  • b(break)
  • cl(clear)
  • l(list))
  • n(next))
  • c(continue)
  • s(step)
  • r(return))
  • b(break)

以下是python調(diào)試器的h(help)命令的演示 -

import pdb

pdb.set_trace()
--call--
>d:\programdata\lib\site-packages\ipython\core\displayhook.py(247)__call__()
-> def __call__(self, result = none):
(pdb) h

documented commands (type help ):
========================================
eof   c         d       h        list     q       rv      undisplay
a     cl        debug   help     ll       quit    s       unt
alias clear     disable ignore   longlist r       source  until
args  commands  display interact n        restart step    up
b     condition down    j        next     return  tbreak  w
break cont      enable  jump     p        retval  u       whatis
bt    continue  exit    l        pp       run     unalias where

miscellaneous help topics:
==========================
exec pdb

在使用python調(diào)試器時(shí),我們可以使用以下行在腳本中的任何位置設(shè)置斷點(diǎn)

import pdb;
pdb.set_trace()

設(shè)置斷點(diǎn)后,我們可以正常運(yùn)行腳本。腳本將執(zhí)行到某一點(diǎn); 直到設(shè)置了一條線。考慮以下示例,我們將在腳本中的不同位置使用上述行來(lái)運(yùn)行腳本

import pdb;
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print (final)

當(dāng)運(yùn)行上面的腳本時(shí),它將執(zhí)行程序直到a =“aaa”,我們可以在下面的輸出中檢查它。

輸出

--return--
> (3)()->none
-> pdb.set_trace()
(pdb) p a
'aaa'
(pdb) p b
*** nameerror: name 'b' is not defined
(pdb) p c
*** nameerror: name 'c' is not defined

在pdb中使用命令'p(print)'后,此腳本僅打印'aaa'。之后是錯(cuò)誤,因?yàn)槲覀円褜帱c(diǎn)設(shè)置為a =“aaa”。

同樣,我們可以通過(guò)更改斷點(diǎn)來(lái)運(yùn)行腳本并查看輸出中的差異

import pdb
a = "aaa"
b = "bbb"
c = "ccc"
pdb.set_trace()
final = a + b + c
print (final)

輸出

--return--
> (5)()->none
-> pdb.set_trace()
(pdb) p a
'aaa'
(pdb) p b
'bbb'
(pdb) p c
'ccc'
(pdb) p final
*** nameerror: name 'final' is not defined
(pdb) exit

在下面的腳本中,我們?cè)诔绦虻淖詈笠恍性O(shè)置斷點(diǎn)

import pdb
a = "aaa"
b = "bbb"
c = "ccc"
final = a + b + c
pdb.set_trace()
print (final)

輸出如下

--return--
> (6)()->none
-> pdb.set_trace()
(pdb) p a
'aaa'
(pdb) p b
'bbb'
(pdb) p c
'ccc'
(pdb) p final
'aaabbbccc'
(pdb)

下一節(jié):python 基準(zhǔn)測(cè)試和分析

相關(guān)文章