您好,登錄后才能下訂單哦!
二次開發(fā)Python代碼中的警告(warning)與錯誤(Error)的原因分析及處理建議。
按出現的頻次排序,越靠前則出現的次數越多。
建議使用analyze_pylint.py代碼來執(zhí)行pylint命令及分析報告,然后參照生成的csv文件及本文檔進行修改,代碼:
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)
原因分析:變量名等與系統(tǒng)內置的變量重復
處理意見:避免與系統(tǒng)內置的名稱重復
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)
原因分析:部分變量在循環(huán)中定義
處理意見:將定義提取到循環(huán)外
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)
原因分析:在循環(huán)外使用循環(huán)變量,可能導致變量未定義
處理意見:確認并修改
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:無錫人流醫(yī)院××× http://mobile.wxbhnkyy120.com/
else:
return None
處理意見:待確認
Error
E1101(no-member)
原因分析:使用元類
處理意見:建議在類中定義一個類變量(靜態(tài)變量)
E0602(undefined-variable)
原因分析:未定義變量
處理意見:需處理
E0401(import-error)
原因分析:對于函數內部添加路徑再import的操作,靜態(tài)檢查會報無法導入
處理意見:考慮修改為__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__方法
處理意見:確認處理
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。