vscode python第三方庫檢測_VSCode中使用Pylint檢查python代碼

為什么使用lint

在日常開發中,不同開發人員會寫下不同風格的代碼,導致代碼可維護性變差,為了解決風格不一致問題,我們可以制定代碼規范,讓開發人員都遵守同樣的規范編寫代碼。在開發過程中,部分代碼存在質量問題,這個時候需要code review的方式,人工檢查一些可能的錯誤。然而,在實際開發中,開發規范仍然嚴重依賴開發人員的自覺性,還是會出現一些不合規范的現象,在人員發生變化的時候,代碼規范需要再次的普及和培訓,也浪費了很多時間。代碼質量的檢查也是嚴重依賴開發人員review的細致程度,實際上還是有很多bad code引入到工程中。如何自動化的完成上述的工作,在更大程度上提高代碼風格一致性和代碼質量呢?

lint可以在代碼編寫期,提交代碼期,或者打包部署的時候自動檢查代碼,它可以識別并自動修改部分錯誤,比如檢測沒有初始化或者沒有定義的變量,檢查調用未定義的方法,自動補齊或者刪除行末的分號等。不同于格式化,格式化僅僅能改變代碼文本的展示,而lint可以發現代碼中的一些錯誤,提升代碼規范和質量。在單人開發或者團隊開發的情況下,lint都是很有好處的,它幫助我們寫出更好的代碼。節省了學習代碼規范的時間,避免了開發交接產生的代碼規范變化,提升了代碼質量,使得code review可以更加專注于代碼邏輯,而不是把時間花在檢查代碼規范或者一些明顯的錯誤上。本文主要講解在VSCode中怎樣lint python代碼。VSCode支持哪些python linter

VSCode支持很多linter,默認使用的是Pylint,python.linting.pylintEnabled控制開關,python.linting.pylintArgs設置參數,python.linting.pylintPath自定義路徑。配置Pylint

代碼VSCode,macOS系統中輸入cmd+shift+P(windows系統輸入ctrl+shift+P),打開命令面板,輸入select linter

點擊確認后,出現新的面板,選擇pylint

右下角出現彈框,提示沒有安裝pylint,點擊install

.vscode文件夾下,VSCode自動生成了settings.json文件,文件內容為:

{

"python.pythonPath": "/usr/local/bin/python3",

"python.linting.pylintEnabled": true,

"python.linting.enabled": true

}

"python.pythonPath": "/usr/local/bin/python3"是python解釋器的路徑,可以通過命令面板里select interpreter來修改

"python.linting.pylintEnabled": true代表pylint已經開啟

"python.linting.enabled": true代表lint開啟

Pylint配置好了,我們可以試試Pylint嘗試

我們寫下兩行簡單的代碼,pylint出現紅色波浪線,這代表代碼有錯誤出現,鼠標懸浮直接可以看到,print后面需要跟上括號,pylint給出了修改建議。可以發現,Pylint使用是非常方便的,在代碼保存后,它會自動檢查代碼問題,并指出具體的問題點,很多問題都可以迅速地解決。它提高了我們的代碼規范程度,提前發現了代碼問題,并且沒有花費額外的開發時間,可以說lint是非常有用的工具了。Pylint檢查規則

Pylint把檢查出的問題分為五個級別,E(Error)和F(Fatal)默認開啟,C(Convention)和R(Refactor)默認關閉,W(Warning)信息部分開啟部分關閉Enable all Error (E) and Fatal (F) messages. 開啟錯誤和fatal信息

Disable all Convention (C) and Refactor (R) messages. 關閉Convention和Refactor信息

Disable all Warning (W) messages except the following: 關閉warning信息(以下除外)unreachable (W0101): Unreachable code (不可觸達的代碼)

duplicate-key (W0109): Duplicate key %r in dictionary (字典里面重復key)

unnecessary-semicolon (W0301): Unnecessary semicolon (不必要的分號)

global-variable-not-assigned (W0602): Using global for %r but no assignment is done (全局變量沒有賦值)

unused-variable (W0612): Unused variable %r (未使用的變量)

binary-op-exception (W0711): Exception to catch is the result of a binary "%s" operation (二進制操作異常)

bad-format-string (W1302): Invalid format string (不合理的格式化)

anomalous-backslash-in-string (W1401): Anomalous backslash in string (異常的反斜杠)

bad-open-mode (W1501): "%s" is not a valid mode for open (不合理的打開方式)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371260.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371260.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring MVC-集成(Integration)-集成LOG4J示例(轉載實踐)

以下內容翻譯自:https://www.tutorialspoint.com/springmvc/springmvc_log4j.htm 說明:示例基于Spring MVC 4.1.6。 以下示例說明如何使用Spring Web MVC框架來觸發LOG4J。首先,讓我們使用Eclipse IDE,并按照以下步驟使用Spring W…

NUMA架構和Java

是時候部署您的應用程序了,期待著采購最適合負載要求的硬件。 如今,具有40核或80核的包裝盒非常普遍。 總體概念是更多的內核,更多的處理能力,更多的吞吐量。 但是我看到了一些相反的結果,表明小型的CPU密集型測試運行…

存儲過程常用技巧

我們在進行pl/sql編程時打交道最多的就是存儲過程了。存儲過程的結構是非常的簡單的,我們在這里除了學習存儲過程的基本結構外,還會學習編寫存儲過程時相關的一些實用的知識。如:游標的處理,異常的處理,集合的選擇等等…

vue是用a標簽打開新頁面_vue 在新窗口打開頁面并設置不同的背景

開發一個新系統,前端用的vue,vue是單體應用,所有頁面都在一個窗口里實現,但項目要求在點button鏈接后要新打開一個瀏覽器頁面,解決方法如下:1. 給此button設置新事件 click"createdefect"提交缺陷…

卡爾曼濾波的推導

卡爾曼濾波的推導1 最小二乘法在一個線性系統中,若\(x\)為常量,是我們要估計的量,關于\(x\)的觀測方程如下: \[ y Hx v \tag{1.1}\] \(H\)是觀測矩陣(或者說算符),\(v\)是噪音,\(y…

Java注釋-保留

考慮一下Java批注: public interface AnAnnotaton {}帶有此注釋的類: AnAnnotaton class AnAnnotatedClass{}還有一個測試,檢查類中是否存在此批注: import static org.hamcrest.MatcherAssert.assertThat; import static org.h…

MYSQL查詢選修三門以上課程_SQL高級查詢的練習題

Student(S#,Sname,Sage,Ssex) 學生表Course(C#,Cname,T#) 課程表SC(S#,C#,score) 成績表Teacher(T#,Tname) 教師表問題:1、查詢“001”課程比“002”課程成績高的所有學生的學號;select a.S# from (select s#,score from SC where C#001) a,(select s#,s…

Determing client's IP

AuthorDeterming clients IPАнатоли&23.04.2009 18:39:46Registered userHow to determine clients IP address in THTTPServer.OnClientConnected, THTTPServer.OnClientDisonnected and TRtcFunction.OnExecute events?Danijel Tkalcec [RTC]23.04.2009 19:45:05…

mysql aa復制_MySQL的復制架構與優化

MySQL的復制架構與優化###########原理###########1.主服務器將更新的數據的sql語句(例如,insert,update,delete等)寫入到二進制文件中(由log-bin選項開啟)。此二進制文件由一個索引文件跟蹤維護。2.從服務器連接(使用I/O線程連接)主服務器&a…

如何安裝Gradle

Gradle是一個簡單而強大的構建工具。 它類似于Ant構建工具。 它可以很好地管理構建,還可以處理構建依賴性。 Gradle最好的部分是它是開源項目。 如果您正在考慮安裝并嘗試一下,那么您來對地方了。 Gradle的開發周期為4周,因此,每隔…

nmap使用指南

一、目標指定 1.CIDR標志位 192.168.1.0/24 2.指定范圍 192.168.1.1-255 192.168.1-255.1&#xff08;任意位置&#xff09;3.IPv6地址只能用規范的IPv6地址或主機名指定。 CIDR 和八位字節范圍不支持IPv6&#xff0c;因為它們對于IPv6幾乎沒什么用。 -iL <文件名> 主機名…

#Pragma Pack(n)與內存分配

#pragma pack(n) 解釋一&#xff1a; 每個特定平臺上的編譯器都有自己的默認“對齊系數”(也叫對齊模數)。程序員可以通過預編譯命令#pragma pack(n)&#xff0c;n1,2,4,8,16來改變這一系數&#xff0c;其中的n就是你要指定的“對齊系數”。 規則&#xff1a; 1、數據成員對齊規…

Java死了還是無敵?

作家艾薩克阿西莫夫&#xff08;Isaac Asimov&#xff09;曾經說過“唯一不變的就是變化”。 這不僅僅是軟件行業中的一個短語&#xff0c;這是絕對的事實。 曾經有一天&#xff0c;Corba為王&#xff0c;但Web Services篡奪了它。 即使在Web服務領域&#xff0c;過去也全都是關…

mysql數據庫訪問問題嗎_#MySQL數據庫無法遠程訪問的問題

在 Ubuntu上裝了mysql&#xff0c;因為項目的數據庫是mysql&#xff0c;將項目放在tomcat里面webapp下面&#xff0c;一直啟動不成功。本來一直以為是jdbc驅動問題&#xff0c;后來發現不是。1.cd /etc/mysql 找到my.cnf查找到bind-address&#xff0c;將 bind-address127.0.0.…

SolidEdge如何復制特征 建立類似于UG 塊的概念

直接CtrlC和CtrlV可以實現特征的復制粘貼 按N鍵可以改變特征方向 已經復制完成的特征要進行定位&#xff0c;則右擊該特征&#xff0c;編輯輪廓&#xff0c;可以進行聰慧尺寸的標注 使用特征庫的方式&#xff0c;就像UG的塊一樣&#xff0c;可以給所有零件調用。在任意位置新建…

Gradle自定義插件

本教程介紹了創建Gradle獨立自定義插件的方法。 它涵蓋以下主題 創建任務&#xff0c;并在“自定義”插件中使用它 獨立的自定義插件 簡短的插件ID 使用settings.gradle自定義Gradle設置 項目信息&#xff1a; 搖籃版本&#xff1a;1.1 操作系統平臺&#xff1a;Ubuntu 1…

mysql映射文件_Mybatis SQL映射文件

簡單查詢insert添加insert可以使用數據庫支持的自動生成主鍵策略&#xff0c;設置useGeneratedKeys”true”&#xff0c;然后把keyProperty 設成對應的列&#xff0c;就搞定了。比如說上面的StudentEntity 使用auto-generated 為id 列生成主鍵.還可以使用selectKey元素。下面例…

監聽微信、支付寶等移動app及瀏覽器的返回、后退、上一頁按鈕的事件方法

在實際的應用中&#xff0c;我們常常需要實現在移動app和瀏覽器中點擊返回、后退、上一頁等按鈕實現自己的關閉頁面、調整到指定頁面或執行一些其它操作的 需求&#xff0c;那在代碼中怎樣監聽當點擊微信、支付寶、百度糯米、百度錢包等app的返回按鈕或者瀏覽器的上一頁或后退按…

第七天作業

---恢復內容開始--- 作業一&#xff1a;nginx服務 二進制安裝nginx包 作為web服務修改配置文件 讓配置生效&#xff0c;驗證配置 直至出現epel的兩個文件&#xff0c;否則reinstall, 接下來寫配置文件&#xff0c; 這款軟件的服務目錄&#xff0c; 在里面編輯一些東西&#xff…

Java測試提示

介紹 我喜歡自動化測試。 在一次極少的轉移到op-ed 1中&#xff0c;我想到了一些想法&#xff08;閱讀–意見&#xff09;。 在開始如何最好地構成您的測試之前&#xff0c;我先簡單問一下–測試的原因是什么&#xff1f; 大致來說&#xff0c;我認為它們是&#xff1a; 減少…