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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

听说过代码洁癖,还没听说过有 Bug 洁癖的?

發布時間:2024/9/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 听说过代码洁癖,还没听说过有 Bug 洁癖的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


當我們寫的一個腳本或程序發生各種不可預知的異常時,如果我們沒有進行捕獲處理的時候,通常都會致使程序崩潰退出,并且會在終端打印出一堆 密密麻麻 的 traceback 堆棧信息來告訴我們,是哪個地方出了問題。

就像這樣子,我天,我承認我有嚴重的 Bug 潔癖了。。

上面這段 traceback

  • 只有黑白兩個顏色,無法像代碼高亮那樣,對肉眼實現太不友好了

  • 無法直接顯示報錯的代碼,排查問題慢人一步,效率太低

那有沒有一種辦法,可以解決這些問題呢?

當然有了,在 Python 中,沒有什么問題是一個庫解決不了的,如果有,那就等你去開發這個庫。

今天要介紹的這個庫呢,叫做 pretty-errors ,從名字上就可以知道它的用途,是用來美化錯誤信息的。

通過這條命令你可以安裝它

$?python3?-m?pip?install?pretty-errors

1. 環境要求

由于使用了 pretty-errors 后,你的 traceback 信息輸出,會有代碼高亮那樣的效果,因此當你在使用測試使用 pretty-error 時,請確保你使用的終端可以輸出帶有顏色的字體。

在 windows 上你可以使用 Powershell,cmder 等

在 Mac 上你可以使用自帶的終端,或者安裝一個更好用的 iTerm2

2. 效果對比


隨便寫一個沒有使用 pretty-errors ,并且報錯了的程序,是這樣子的。

而使用了 pretty_errors 后,報錯信息被美化成這樣了。

是不是感覺清楚了不少,那種密密麻麻帶來的焦慮感是不是都消失了呢?

當然這段代碼少,你可能還沒感受到,那就來看下 該項目在 Github上的一張效果對比圖吧

3. 配置全局可用

可以看到使用了 pretty_errors 后,無非就是把過濾掉了一些干擾我們視線的無用信息,然后把有用的關鍵信息給我們高亮顯示。

既然既然這樣,那 pretty_errors 應該也能支持我們如何自定義我們選用什么樣的顏色,怎么排版吧?

答案是顯而易見的。

pretty_errors 和其他庫不太一樣,在一定程度上(如果你使用全局配置的話),它并不是開箱即用的,你在使用它之前可能需要做一下配置。

使用這一條命令,會讓你進行配置,可以讓你在該環境中運行其他腳本時的 traceback 輸出都自動美化。

$?python3?-m?pretty_errors

配置完成后,你再運行任何腳本,traceback 都會自動美化了,而這個美化是全局生效的。

不僅是在我的 iTerm 終端下

在 PyCharm 中也會

唯一的缺點就是,原先在 PyCharm 中的 traceback 可以直接點擊 文件路徑 直接跳轉到對應錯誤文件代碼行,而你如果是在 VSCode 可以使用 下面自定義配置的方案解決這個問題(下面會講到,參數是:display_link)。

可能有些情況下,你并不想設置 pretty_errors 全局可用。

那怎么取消之前的配置呢?

只需要再次輸出 python -m pretty_errors,輸出入 C 即可清除。

4. 單文件中使用

取消全局可用后,你可以根據自己需要,在你需要使用 pretty-errors 的腳本文件中導入pretty_errors,即可使用

import?pretty_errors

就像這樣

import?pretty_errorsdef?foo():1/0if?__name__?==?"__main__":foo()

值得一提的是,使用這種方式,若是你的腳本中,出現語法錯誤,則輸出的異常信息還是按照之前的方式展示,并不會被美化。

因此,為了讓美化更徹底,官方推薦你使用 python -m pretty_errors

5. 自定義設置

上面的例子里,我們使用的都是 pretty_errors 的默認美化格式,展示的信息并沒有那么全。

比如

  • 它并沒有展示報錯文件的絕對路徑,這將使我們很難定位到是哪個文件里的代碼出現錯誤。

  • 如果能把具體報錯的代碼,給我們展示在終端屏幕上,就不需要我們再到源碼文件中排查原因了。

如果使用了 pretty_errors 導致異常信息有丟失,那還不如不使用 pretty_errors 呢。

不過,可以告訴你的是,pretty_errors 并沒有你想象的那么簡單。

它足夠開放,支持自定義配置,可以由你選擇你需要展示哪些信息,怎么展示?

這里舉一個例子

import?pretty_errors#?【重點】進行配置 pretty_errors.configure(separator_character?=?'*',filename_display????=?pretty_errors.FILENAME_EXTENDED,line_number_first???=?True,display_link????????=?True,lines_before????????=?5,lines_after?????????=?2,line_color??????????=?pretty_errors.RED?+?'>?'?+?pretty_errors.default_config.line_color,code_color??????????=?'??'?+?pretty_errors.default_config.line_color, )#?原來的代碼 def?foo():1/0if?__name__?==?"__main__":foo()

在你像上面這樣使用 pretty_errrs.configure 進行配置時,拋出的的異常信息就變成這樣了。

當然了,pretty_errors.configure() ?還可以接收很多的參數,你可以根據你自己的需要進行配置。

5.1 設置顏色

  • header_color:設置標題行的顏色。

  • timestamp_color:設置時間戳顏色

  • default_color:設置默認的顏色

  • filename_color:設置文件名顏色

  • line_number_color:設置行號顏色。

  • function_color:設置函數顏色。

  • link_color:設置鏈接的顏色。

在設置顏色的時候,pretty_errors 提供了一些常用的 顏色常量供你直接調取。

  • BLACK:黑色

  • GREY:灰色

  • RED:紅色

  • GREEN:綠色

  • YELLOW:黃色

  • BLUE:藍色

  • MAGENTA:品紅色

  • CYAN:藍綠色

  • WHITE:白色

而每一種顏色,都相應的匹配的 BRIGHT_ 變體 和 _BACKGROUND 變體,

其中,_BACKGROUND 用于設置背景色,舉個例子如下。

5.2 設置顯示內容

  • line_number_first
    啟用后,將首先顯示行號,而不是文件名。

  • lines_before :顯示發生異常處的前幾行代碼

  • lines_after:顯示發生異常處的后幾行代碼

  • display_link:啟用后,將在錯誤位置下方寫入鏈接,VScode將允許您單擊該鏈接。

  • separator_character:用于創建標題行的字符。默認情況下使用連字符。如果設置為 '' 或者 None ,標題將被禁用。

  • display_timestamp:啟用時,時間戳將寫入回溯頭中。

  • display_locals
    啟用后,將顯示在頂部堆棧框架代碼中的局部變量及其值。

  • display_trace_locals
    啟用后,其他堆棧框架代碼中出現的局部變量將與它們的值一起顯示。

5.3 設置怎么顯示

  • line_length:設置每行的長度,默認為0,表示每行的輸出將與控制臺尺寸相匹配,如果你設置的長度將好與控制臺寬度匹配,則可能需要禁用full_line_newline,以防止出現明顯的雙換行符。

  • full_line_newline:當輸出的字符滿行時,是否要插入換行符。

  • timestamp_function
    調用該函數以生成時間戳。默認值為time.perf_counter。

  • top_first
    啟用后,堆棧跟蹤將反轉,首先顯示堆棧頂部。

  • display_arrow
    啟用后,將針對語法錯誤顯示一個箭頭,指向有問題的令牌。

  • truncate_code
    啟用后,每行代碼將被截斷以適合行長。

  • stack_depth
    要顯示的堆棧跟蹤的最大條目數。什么時候0將顯示整個堆棧,這是默認值。

  • exception_above
    啟用后,異常將顯示在堆棧跟蹤上方。

  • exception_below:
    啟用后,異常顯示在堆棧跟蹤下方。

  • reset_stdout
    啟用后,重置轉義序列將寫入stdout和stderr;如果您的控制臺留下錯誤的顏色,請啟用此選項。

  • filename_display

    設置文件名的展示方式,有三個選項:pretty_errors.FILENAME_COMPACT 、pretty_errors.FILENAME_EXTENDED,或者pretty_errors.FILENAME_FULL

以上,就是我對 pretty_errors 的使用體驗,總的來說,這個庫功能非常強大,使用效果也特別酷炫,它就跟 PEP8 規范一樣,沒有它是可以,但是有了它會更好一樣。對于某些想自定義錯誤輸出場景的人,pretty_errors ?會是一個不錯的解決方案,明哥把它推薦給你。

來和小伙伴們一起向上生長呀!

掃描下方二維碼,添加小詹微信,可領取千元大禮包并申請加入 Python 學習交流群,群內僅供學術交流,日常互動,如果是想發推文、廣告、砍價小程序的敬請繞道!一定記得備注「交流學習」,我會盡快通過好友申請哦!

????長按識別,添加微信

(添加人數較多,請耐心等待)

????長按識別,關注小詹

(掃碼回復 1024 領取程序員大禮包)

總結

以上是生活随笔為你收集整理的听说过代码洁癖,还没听说过有 Bug 洁癖的?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久久综合 | 久久久男人天堂 | 日本男人天堂网 | 99人人爽| 日韩av一卡 | www.四色| 人人狠狠综合久久亚洲 | 国产男人搡女人免费视频 | 国产精品v欧美精品v日韩 | 黄色电影在线视频 | 一区二区视频在线观看 | 亚洲免费精品视频在线观看 | 成人精品国产 | 日韩视频在线免费 | 欧洲亚洲精品 | 久久久久久久久久久久久久国产 | 成人网在线视频 | 日韩资源站| 国产亚洲精品成人 | 国产第5页| 久久久国产成人一区二区三区 | 成片免费观看视频 | 久久久精品91 | 大号bbwassbigav女 | 涩涩一区| 久久久久久影院 | 日本a视频在线观看 | 久久精品无码一区 | jul023被夫上司连续侵犯 | 日韩第四页 | 五月婷婷操 | av在线导航 | 欧美激情综合色综合啪啪五月 | 日韩在线视频网 | 最近中文字幕av | 精品一区二区免费看 | www.一起操 | 狠狠一区| 欧美日韩不卡一区二区三区 | 久久草av | 成年人在线免费看 | 亚洲AV无码成人精品一区 | xxx毛片 | 青青青青草 | 蜜桃视频久久一区免费观看入口 | 欧美爽爽爽 | 久久综合五月婷婷 | 亚洲 高清 成人 动漫 | 九一亚色 | 能直接看的av网站 | 久久久久一区二区 | 欧美精品一区二区三区蜜臀 | 免费成人电影在线观看 | 亚洲天堂成人在线观看 | 久久久久亚洲av无码麻豆 | 香蕉国产片 | 丰满岳乱妇一区二区三区 | 肉体粗喘娇吟国产91 | 亚洲区一区二 | 日韩人妻无码精品久久免费 | 国产一级做a爱免费视频 | 黄色在线播放 | 拔插拔插影库 | 久久亚洲av午夜福利精品一区 | 亚洲精品视屏 | 亚洲天堂av在线免费观看 | 影音先锋日韩资源 | 国产一区二区99 | 国产片黄色 | 色com| 丰满肉嫩西川结衣av | 成人拍拍视频 | 色综合啪啪 | 91精品国自产在线观看 | 精品无码人妻一区二区三区 | 色就色综合 | 亚洲第一av网站 | 久久久久一区 | 狠狠撸视频 | 夜av| 在线日韩视频 | 色啊色| 污视频在线免费 | 成人精品一区二区三区中文字幕 | 国产精品久久久久久久久久久免费看 | www.爱爱| 麻豆传媒一区二区三区 | 亚洲欧美日韩综合一区二区 | 日韩精品国产一区二区 | 妺妺窝人体色www婷婷 | 成年人晚上看的视频 | 狠狠干综合网 | 亚洲综合套图 | 天天躁日日躁狠狠躁av | av中文字幕av| 午夜免费视频 | 国产三级午夜理伦三级 | 欧州一区 | 网友自拍第一页 |