Refurb 是一個 Python 庫,可以使用一個命令對 Python 代碼進行現(xiàn)代化改造或重新設(shè)計,但在他們的網(wǎng)站上聲明了一個重要點:
Refurb 不是樣式/類型檢查器。它旨在使好的代碼變得更好。
這是他們的 GitHub 存儲庫的鏈接:
https://github.com/dosisod/refurb
他們的 GitHub repo 上提供了與他們的工具相關(guān)的非常詳細的信息。
建議使用虛擬環(huán)境安裝refurb
安裝refurb命令如下:
pip install refurb
安裝完成后,讓我們檢查一下它會給我們的代碼文件提供多少建議。
我創(chuàng)建了一個非常基本的py文件,其中包含以下代碼:
此代碼取自其官方存儲庫頁面上給出的示例。

要檢查 refurb 會對此代碼給出什么樣的建議,請使用命令提示符轉(zhuǎn)到 py 文件所在的目錄并運行以下命令
這里main.py是我的 Python 文件,下面是輸出

讓我們一一看看這些建議:
第一行,即使用 in (x, y, z) 而不是 in [x, y, z]
表示我在一個列表上循環(huán),它建議我們在元組上循環(huán),因為這將是一種更快的方法。
第二行,即使用 y = Path(x).read_text() 而不是 with open(x) as f: y = f.read()
由于我正在使用 .read() 方法讀取文本文件,因此最好使用 read_text() 命令讀取所有文件的內(nèi)容。
第三行,即將 x.startswith(y) 或 x.startswith(z) 替換為 x.startswith((y, z))
編寫代碼時的一個關(guān)鍵點是不要重復(fù)自己,同樣推薦這個建議。
第四行,即使用 print() 而不是 print(“”)
這個建議是大多數(shù) Python 開發(fā)人員甚至不知道或不關(guān)心的建議,即,如果你什么都不打印,你甚至不需要在其中傳遞括號。
正如你所看到的,我們只需要運行一個命令,它就會為我們的代碼提供四個建議,如果你想要代碼建議,GitHub copilot 是一個更好的解決方案,但它不是免費的。
要記住的一個關(guān)鍵點:
Refurb 僅支持 Python 3.10。它可以檢查 Python 3.6 及更高版本的代碼,但 refurb 本身必須通過 Python 3.10 運行。
讓我們再看一次推薦:

您可以看到每個推薦都附有代碼。您可以使用該代碼來獲得它的詳細解釋。
最后一條建議附上代碼FURB105,讓我們看一下它的解釋:
refurb — explain FURB105
這是輸出 print(") 可以簡化為 print()
因為它正在詳細解釋建議。
假設(shè)您想忽略特定建議;你可以這樣做:
refurb — o FURB105s
現(xiàn)在它將不再在您的 py 文件中推薦與此錯誤代碼相關(guān)的建議。
如果您想為代碼文件創(chuàng)建自己的清單,您也可以這樣做。您可以通過翻新進行大量定制。