日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:trace——跟蹤Python語(yǔ)句的執(zhí)行

trace —— 跟蹤 python 語(yǔ)句的執(zhí)行

源代碼 : Lib/trace.py

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括義安網(wǎng)站建設(shè)、義安網(wǎng)站制作、義安網(wǎng)頁(yè)制作以及義安網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,義安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到義安省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!


模塊 trace 模塊用于跟蹤程序的執(zhí)行過(guò)程,可生成帶注釋的語(yǔ)句覆蓋率列表,打印調(diào)用/被調(diào)用關(guān)系,列出程序運(yùn)行期間執(zhí)行過(guò)的函數(shù)。該模塊可在其他程序或命令行中使用。

參見(jiàn)

Coverage.py

流行的第三方代碼覆蓋工具,可輸出 HTML ,并提供分支覆蓋等高級(jí)功能。

命令行用法

trace 模塊可由命令行調(diào)用。用法如此簡(jiǎn)單:

 
 
 
 
  1. python -m trace --count -C . somefile.py ...

上述命令將執(zhí)行 somefile.py ,并在當(dāng)前目錄生成執(zhí)行期間所有已導(dǎo)入 Python 模塊的帶注解列表。

--help

顯示用法并退出。

--version

顯示模塊版本并退出。

3.8 新版功能: 加入了 --module 選項(xiàng),允許運(yùn)行可執(zhí)行模塊。

主要的可選參數(shù)

在調(diào)用 trace 時(shí),至少須指定以下可選參數(shù)之一。 -listfuncs 與 -trace 、 -count 相互排斥。如果給出 --listfuncs,就再不會(huì)接受 --count 和 --trace ,反之亦然。

-c, —count

在程序完成時(shí)生成一組帶有注解的報(bào)表文件,顯示每個(gè)語(yǔ)句被執(zhí)行的次數(shù)。 參見(jiàn)下面的 -coverdir 、-file 和 -no-report。

-t, —trace

執(zhí)行時(shí)顯示每一行。

-l, —listfuncs

顯示程序運(yùn)行時(shí)執(zhí)行到的函數(shù)。

-r, —report

由之前用了 --count 和 --file 運(yùn)行的程序產(chǎn)生一個(gè)帶有注解的報(bào)表。 不會(huì)執(zhí)行代碼。

-T, —trackcalls

顯示程序運(yùn)行時(shí)暴露出來(lái)的調(diào)用關(guān)系。

修飾器

-f, —file=

用于累計(jì)多次跟蹤運(yùn)行計(jì)數(shù)的文件名。應(yīng)與 --count 一起使用。

-C, —coverdir=

報(bào)表文件的所在目錄。package.module 的覆蓋率報(bào)表將被寫(xiě)入文件 *dir*/*package*/*module*.cover

-m, —missing

生成帶注解的報(bào)表時(shí),用 >>>>>> 標(biāo)記未執(zhí)行的行。

-s, —summary

在用到 --count 或 --report 時(shí),將每個(gè)文件的簡(jiǎn)短摘要輸出到 stdout。

-R, —no-report

不生成帶注解的報(bào)表。如果打算用 --count 執(zhí)行多次運(yùn)行,然后在最后產(chǎn)生一組帶注解的報(bào)表,該選項(xiàng)就很有用。

-g, —timing

在每一行前面加上時(shí)間,自程序運(yùn)行算起。只在跟蹤時(shí)有用。

過(guò)濾器

以下參數(shù)可重復(fù)多次。

--ignore-module=

忽略給出的模塊名及其子模塊(若為包)。參數(shù)可為逗號(hào)分隔的名稱列表。

--ignore-dir=

忽略指定目錄及其子目錄下的所有模塊和包。參數(shù)可為 os.pathsep 分隔的目錄列表。

編程接口

class trace.Trace(count=1, trace=1, countfuncs=0, countcallers=0, ignoremods=(), ignoredirs=(), infile=None, outfile=None, timing=False)

創(chuàng)建一個(gè)對(duì)象來(lái)跟蹤單個(gè)語(yǔ)句或表達(dá)式的執(zhí)行。所有參數(shù)均為選填。 count 可對(duì)行號(hào)計(jì)數(shù)。 trace 啟用單行執(zhí)行跟蹤。 countfuncs 可列出運(yùn)行過(guò)程中調(diào)用的函數(shù)。 countcallers 可跟蹤調(diào)用關(guān)系。 ignoremods 是要忽略的模塊或包的列表。ignoredirs 是要忽略的模塊或包的目錄列表。 infile 是個(gè)文件名,從該文件中讀取存儲(chǔ)的計(jì)數(shù)信息。 outfile 是用來(lái)寫(xiě)入最新計(jì)數(shù)信息的文件名。 timing 可以顯示相對(duì)于跟蹤開(kāi)始時(shí)間的時(shí)間戳。

  • run(cmd)

    執(zhí)行命令,并根據(jù)當(dāng)前跟蹤參數(shù)從執(zhí)行過(guò)程中收集統(tǒng)計(jì)數(shù)據(jù)。 cmd 必須為字符串或 code 對(duì)象,可供傳入 exec()。

  • runctx(cmd, globals=None, locals=None)

    在定義的全局和局部環(huán)境中,執(zhí)行命令并收集當(dāng)前跟蹤參數(shù)下的執(zhí)行統(tǒng)計(jì)數(shù)據(jù)。若沒(méi)有定義 globalslocals ,則默認(rèn)為空字典。

  • runfunc(func, /, \args, **kwds*)

    在 Trace 對(duì)象的控制下,用給定的參數(shù)調(diào)用 func,并采用當(dāng)前的跟蹤參數(shù)。

  • results()

    返回一個(gè) CoverageResults 對(duì)象,包含之前對(duì)指定 Trace 實(shí)例調(diào)用 run、runctxrunfunc 的累積結(jié)果。 累積的跟蹤結(jié)果不會(huì)重置。

class trace.CoverageResults

存放代碼覆蓋結(jié)果的容器,由 Trace.results() 創(chuàng)建。用戶不應(yīng)直接去創(chuàng)建。

  • update(other)

    從另一個(gè) CoverageResults 對(duì)象中合并代碼覆蓋數(shù)據(jù)。

  • write_results(show_missing=True, summary=False, coverdir=None)

    寫(xiě)入代碼覆蓋結(jié)果。設(shè)置 show_missing 可顯示未命中的行。設(shè)置*summary* 可在輸出中包含每個(gè)模塊的覆蓋率摘要信息。 coverdir 可指定覆蓋率結(jié)果文件的輸出目錄,為 None 則結(jié)果將置于源文件所在目錄中。

以下例子簡(jiǎn)單演示了編程接口的用法:

 
 
 
 
  1. import sys
  2. import trace
  3. # create a Trace object, telling it what to ignore, and whether to
  4. # do tracing or line-counting or both.
  5. tracer = trace.Trace(
  6. ignoredirs=[sys.prefix, sys.exec_prefix],
  7. trace=0,
  8. count=1)
  9. # run the new command using the given tracer
  10. tracer.run('main()')
  11. # make a report, placing output in the current directory
  12. r = tracer.results()
  13. r.write_results(show_missing=True, coverdir=".")

當(dāng)前題目:創(chuàng)新互聯(lián)Python教程:trace——跟蹤Python語(yǔ)句的執(zhí)行
網(wǎng)頁(yè)鏈接:http://www.dlmjj.cn/article/cddcjhh.html