pylint高频警告错误--原因及处理建议

时间:2025-03-15 09:04:38
  • W0614(unused-wildcard-import)

    • 原因分析:文件中import 了sys,os等,当中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
      
    • 处理意见:待确认