溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-06-10 04:20:10 來源:網絡 閱讀:2821 作者:nineteens 欄目:編程語言

  二次開發(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__方法

  處理意見:確認處理


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI