4

如果您运行pylint --generate-rcfile > pylintrc并查看默认的 rc 文件,您将看到以下禁用警告列表。

为什么默认禁用它们?

disable=print-statement,
        parameter-unpacking,
        unpacking-in-except,
        old-raise-syntax,
        backtick,
        long-suffix,
        old-ne-operator,
        old-octal-literal,
        import-star-module-level,
        non-ascii-bytes-literal,
        raw-checker-failed,
        bad-inline-option,
        locally-disabled,
        locally-enabled,
        file-ignored,
        suppressed-message,
        useless-suppression,
        deprecated-pragma,
        apply-builtin,
        basestring-builtin,
        buffer-builtin,
        cmp-builtin,
        coerce-builtin,
        execfile-builtin,
        file-builtin,
        long-builtin,
        raw_input-builtin,
        reduce-builtin,
        standarderror-builtin,
        unicode-builtin,
        xrange-builtin,
        coerce-method,
        delslice-method,
        getslice-method,
        setslice-method,
        no-absolute-import,
        old-division,
           dict-iter-method,
        dict-view-method,
        next-method-called,
        metaclass-assignment,
        indexing-exception,
        raising-string,
        reload-builtin,
        oct-method,
        hex-method,
        nonzero-method,
        cmp-method,
        input-builtin,
        round-builtin,
        intern-builtin,
        unichr-builtin,
        map-builtin-not-iterating,
        zip-builtin-not-iterating,
        range-builtin-not-iterating,
        filter-builtin-not-iterating,
        using-cmp-argument,
        eq-without-hash,
        div-method,
        idiv-method,
        rdiv-method,
        exception-message-attribute,
        invalid-str-codec,
        sys-max-int,
        bad-python3-import,
        deprecated-string-function,
        deprecated-str-translate-call,
        deprecated-itertools-function,
        deprecated-types-field,
        next-method-defined,
        dict-items-not-iterating,
        dict-keys-not-iterating,
        dict-values-not-iterating

4

2 回答 2

3

从文档的常见问题...

为什么默认禁用一堆消息?

pylint 在默认情况下确实禁用了一些消息,因为它们容易出现误报,或者因为它们有足够的自以为是而没有被包含为默认消息。但是大多数禁用的消息来自 Python 3 移植检查器,默认情况下它是禁用的。它需要使用 --py3k 标志进行特殊激活。

于 2019-03-07T10:11:44.103 回答
2

我认为这样的默认 rc 文件旨在将 pylint 应用于 python2 代码,而不会出现大量错误和警告。注意:大部分禁用语句属于python2语法和标准库api:

  • print-statement -print在 Python2 中是一个语句,在 Python3 中是一个函数
  • old-raise-syntax - 存在except Exception, e对 Python3 无效的语法,在 Python3except Exception as e中仅有效
  • xrange-builtin -xrange被替换为range
  • 等等

因此,使用此默认 rc,您可以使用 pylint for python2 代码来找出诸如redefined-outer-name,line-too-long和其他不好的事情,而不会因有效的 Python2 语法和标准库调用而出现烦人的错误和警告。

于 2019-03-06T20:28:04.170 回答