pylint高頻警告錯誤的原因及處理建議

2021-09-27 05:03:50 字數 3788 閱讀 4838

二次開發python**中的警告(warning)與錯誤(error)的原因分析及處理建議。

按出現的頻次排序,越靠前則出現的次數越多。

warning

w0614(unused-wildcard-import)

原因分析:b.py檔案中import 了sys,os等,當a.py中from b import * 時,如果sys在a中沒有使用,則有此警告

處理意見:import時不使用*

w0611(unused-import)

原因分析:import後未使用

處理意見:先解決所有的import * ,然後再處理該警告。

w0212(protected-access)

原因分析:直接使用了保護變數

處理意見:保護變數不直接使用,增加獲取變數的方法

w0621(redefined-outer-name)

原因分析:和__main__中的變數重名

處理意見:需要把__main__中的內容定義為乙個main函式

w0613(unused-argument)

原因分析:變數未使用

處理意見:可能是保留,後面可能會使用。暫不修改

w0702(bare-except)

原因分析:直接使用了try..except..,沒有捕獲具體的異常

處理意見:明確捕獲哪些異常有困難。暫不修改

w0612(unused-variable)

原因分析:定義了變數卻沒有使用

處理意見:首先確認是否真的不需要,如果等號後的內容需要,則把等號前的刪掉;如果是需要佔位,則使用下劃線

w0622(redefined-builtin)

原因分析:變數名等與系統內建的變數重複

處理意見:避免與系統內建的名稱重複

w0311(bad-indentation)

原因分析:縮排問題

處理意見:建議縮排使用四個空格,不使用tab或三個空格等

w0511(fixme)

原因分析:# todo 未實現

處理意見:慢慢實現

w0105(pointless-string-statement)

原因分析:**中間無意義的字串

處理意見:若是注釋**,則用# 號或者刪除;如果是doc_string就放在開始處

w0102(dangerous-default-value)

原因分析:使用了可變物件作為預設引數

處理意見:不要使用可變物件作為預設引數

w0122(exec-used)

原因分析:使用了exec

處理意見:避免使用exec

w1401(anomalous-backslash-in-string)

原因分析:含"\「的字元可能缺少字首r

處理意見:如果存在「\」,則在字串前加r

w0201(attribute-defined-outside-init)

原因分析:顯式的設定了乙個初始化時不存在的屬性

處理意見:不要顯式的去設定乙個不存在的屬性,在__init__函式中設定

w0301(unnecessary-semicolon)

原因分析:行末尾加了;

處理意見:python**行尾不需要加;

w0312(mixed-indentation)

原因分析:縮排使用了tab

處理意見:使用四個空格,不使用tab

w0401(wildcard-import)

原因分析:import時使用了*

處理意見:import時不使用*

w0640(cell-var-from-loop)

原因分析:部分變數在迴圈中定義

處理意見:將定義提取到迴圈外

w0404(reimported)

原因分析:重複定義

處理意見:處理

w0107(unnecessary-pass)

原因分析:無意義的pass;部分尚未定義的函式直接使用了pass

處理意見:對於未定義的函式建議使用return none,不使用pass

w0123(eval-used)

原因分析:使用了eval

處理意見:盡量不使用eval

w0108(unnecessary-lambda)

原因分析:部分簡單的不需要使用lambda

處理意見:簡單的比如直接可使用int()等就不要使用lambda

w0211(bad-staticmethod-argument)

原因分析:staticmethod不需要self,cls引數;如果是類函式,則需要

處理意見:確認並修改

w0143(comparison-with-callable)

原因分析:判斷是否是同乙個函式時提示是否遺漏括號

處理意見:判斷是否是同乙個函式,建議使用is,不使用==

w0632(unbalanced-tuple-unpacking)

原因分析:類似於left, right = args[-2:]

處理意見:看是否能夠顯示的宣告。。。

w0109(duplicate-key)

原因分析:key重複

處理意見:確認並修改

w0631(undefined-loop-variable)

原因分析:在迴圈外使用迴圈變數,可能導致變數未定義

處理意見:確認並修改

w0703(broad-except)

原因分析:直接捕獲了所有的exception

處理意見:暫不處理

w0106(expression-not-assigned)

原因分析:表示式的值未賦值出去

處理意見:確認並修改

w0120(useless-else-on-loop)

原因分析:else clause on loop without a break statement (useless-else-on-loop)

for i in l:

pass:無錫**醫院×××

else:

return none

處理意見:待確認

error

e1101(no-member)

原因分析:使用元類

處理意見:建議在類中定義乙個類變數(靜態變數)

e0602(undefined-variable)

原因分析:未定義變數

處理意見:需處理

e0401(import-error)

原因分析:對於函式內部新增路徑再import的操作,靜態檢查會報無法匯入

處理意見:考慮修改為__import__

e0102(function-redefined)

原因分析:有可能是import *引入的問題

處理意見:若確實重複則修改

e1136(unsubscriptable-object)

原因分析:檢查物件是否有__getitem__()方法

處理意見:檢查物件是否有__getitem__()方法

e1120(no-value-for-parameter)

原因分析:定義時引數與呼叫時傳入的引數個數不一致

處理意見:處理修改**

e0213(no-self-argument)

原因分析:類方法第乙個引數未命名為self,而命名為了cls等

處理意見:建議命名為self

e0001(syntax-error)

原因分析:語法錯誤

處理意見:修改

e1137(unsupported-assignment-operation)

原因分析:使用符號時需要物件支援__setitem__方法

處理意見:確認處理

Autowire 警告的原因

今天使用idea寫 的時候,看到之前的專案中顯示有warning的提示,去看了下,是如下 autowire private jdbctemplate jdbctemplate 提示的警告資訊 field injection is not recommended inspection info spr...

分析表示式警告的原因

erlang的表示式如果不用的話,會警告的,但是有些又不警告,比較奇怪,做了下試驗,再看了compiler的原始碼有了以下的結果 root yufeng desktop nl expr.erl 1 module expr 2 export test 0 3 test 4 1,5 1.0,6 7 1,...

iOS開發 常見的錯誤與警告

1.error undeclared first use in this function 還沒有定義 在此函式中第一次使用 注 使用某乙個變數時,如果使用前還沒有定義,會出現該錯誤。在oc以及c語言中,使用變數前必須先定義它。這個錯誤經常出現在忘記進行變數定義的情況下。但是,慢慢拿習慣後,這種錯誤...