Contents
由於 Python 並不是一個編譯式程式語言,這也代表你要發現程式中的型別錯誤問題只能透過幾種方式來檢查這種因為型別使用不當所產生的 runtime 錯誤問題
- 撰寫 unit test
- code review
- 靜態型別檢查工具
Facebook 推出的 Pyre ( 官方網站 – https://pyre-check.org/ ) 就是一種靜態型別檢查工具,可以得知 Facebook 內部也大量在使用 Python 程式語言開發專案,也遇到這種惱人的型別檢查問題
Facebook 釋出這麼棒的開源工具,當然要馬上安裝來使用看看,但是在使用上卻遇到問題,Pyre 並沒有像官方網站的展示影片一樣回傳 python 程式碼中的型別錯誤訊息,花了一些時間仔細看了文件,找到了問題發生原因,以下是我的整理筆記,希望大家都可以順利使用這個自動化工具,讓自己的生產力與專案品質大增
安裝 Pyre
安裝 Pyre 很簡單使用 pip 套件管理工具安裝就可以了
pip install pyre-check
使用 Pyre
先建立一個測試目錄 testpy,到這個目錄寫一個回傳錯誤型別的 python 程式
def foo() -> int
return 'string' # 應該要回傳 int 型別才對
進入 testpy 目錄,執行 pyre check

這時候 pyre 就會幫你檢查目錄中的所有 python 程式碼,並告訴你那些程式碼有型別使用錯誤的狀況
要注意的是 pyre check 會全部將你的 source code 做一次檢查,在每日的專案開發上,一個目錄中有上百個 python 程式碼檔案時,這會很沒效率,還好 pyre 有支援 incremental mode
Pyre 的 incremental mode 依靠 Watchman 來獲取關於檔案系統變化的通知。如果沒有安裝 Watchman ,incremental mode 就無法正常使用
Pyre 官網上的 pyre 展示就是使用 incremental mode,但是要使用 incremental mode 之前,你必須先安裝 Watchman ,並啟動 Watchman ,這部分沒有做,你就無法像影片中那樣優雅地使用 pyre
安裝 Watchman
Watchman 也是 Facebook 釋出的開源工具,是一個檔案系統的監控工具,有支援 Windows/Linux/Mac ,安裝可參考 Watchman 官方的安裝網頁
使用 Pyre incremental mode
1. 進入剛剛建立的 testpy 目錄,執行 pyre init
cd testpy
pyre init

pyre init 會問你是否要初始化 Watchman 的設定,default 是 yes ,按下 enter 就可以了
執行 Watchman
在 testpy 目錄中執行
watchman watch .
這代表要讓 watchman 監控 testpy 目錄中任何檔案的變動
這時候只要你在 testpy 目錄中修改的任何程式碼,然後只要輸入 pyre 就會幫你做型別使用錯誤檢查,而且是使用 incremental mode ,會比使用 pyre check 快很多
相關線上課程
- 100天的程式碼-2021年完整的Python 專業訓練營 ( 由 udemy 熱門課程講師 Angela 主講 )
- [線上課程] Python 的自動化軟體測試
- Python 程式設計學習地圖
最新文章
- 精通程式編寫面試:資料結構 + 演算法
- 品牌大師班 – 整個品牌設計過程
- Google Cloud Skills Boost 提供免費生成式 AI 學習課程
- 電子書 – 通過機器學習打擊詐欺
- Citrix 初學者基礎知識
❤️您應該有留意到,我們的網頁並不會出現干擾人的跳出煩人的廣告或是在內容中嵌入廣告,因為我們發現這樣對閱讀網頁的內容體驗真的是不好!
如果您覺得我們提供的內容服務還不錯,歡迎透過對以下產品/服務的購買投資來支持本站的營運走得更遠
如果暫時還不需要以下的付費服務,幫我們把這個網站分享給有需要的朋友,您的小小舉動會對 Soft & Share 有莫大的幫助!感謝您的支持!
🎈如果您點選優惠連結後,還是沒有看到優惠價格,請將瀏覽器的 cookie 清除 ( 清除 udemy 網站的就可以了 ),然後重新點選優惠連結並登入 Udemy 就可以了
- ❤️記得透過電腦瀏覽器登入 udemy ,使用這個✨優惠連結✨購買線上課程,本站可獲得 udemy 推薦獎金,歡迎透過我們的 A-Z 關鍵字索引 或 Udemy 策展找到您想要的課程
- ❤️訂閱開源報報 – 週一到週五每天使用中文報導三則開源專案
- ❤️LN+ for udemy/youtube/hahow/web 無縫整合 Notion 成為線上學習平台筆記工具
- ❤️更多付費服務(電子書/其他線上課程平台/軟體服務 )……

你必須登入才能發表留言。