二次開發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語言中,使用變數前必須先定義它。這個錯誤經常出現在忘記進行變數定義的情況下。但是,慢慢拿習慣後,這種錯誤...