16

一位朋友向我介绍了 Pylint,出于好奇,我针对一些标准库模块运行了它。令我惊讶的是,收视率很低。这里有一些运行:

os.py
Your code has been rated at 3.55/10 

random.py
Your code has been rated at 4.74/10

我在更多模块上运行它,发现评分约为 6 - 7。

我想知道这背后的原因?Pylint 是坏了还是有比我知道的更多的因素影响评级?我问这个问题特别是因为我是 Python 新手,并且依赖 Pylint 来帮助我改进我的编码风格:)

4

2 回答 2

13

Pylint 的默认设置非常严格,并且抱怨他们不应该做的事情。例如,如果您使用foo(**kwargs),您会收到一条关于使用“魔法”的消息。有时,pylint 似乎是从 Java 程序员的角度看待 Python。

您必须查看具体消息并决定是否同意它们。

其他问题包括无法执行特定于平台的条件。在 os.py 中,它抱怨:

F:119: Unable to import 'riscos'
于 2010-07-28T18:11:27.537 回答
8

Pylint 是在标准库之后很久才编写的。例如,stdlib 不遵守严格的命名约定(PEP008 是最近的,wrt python)。获得“良好”pylint 评级的关键因素:

  • 确保您的代码编写风格符合 Pylint 的期望(或调整 Pylint 以匹配您的风格/约定)。这包括函数、变量、类、方法名、各个地方的空格等。

  • 以尽可能方便的静态方式编写 Python 代码,并避免使用动态技巧。

  • 编写文档字符串

显然,标准库并不是为了优化 Pylint 对模块的评级而编写的。

使用 Pylint 不一定会改善您的“编码风格”。然而,在许多情况下,它会使你的代码更容易理解,有时会以一些“pythonicity”为代价。

于 2010-08-11T13:23:54.157 回答