每个 pylint 警告背后的规则、概念和用法的详细信息在哪里?

Where are detailed the rules, concepts and usages behind each pylint's warnings?

仍然 discovering Pylint and I understand why many Pythonists deactivate some (or many) warnings to lower Pylint's voice, but for the moment, as a Python newbie我想使用pylint来提高我的Pythonic理解和我的代码质量,为了帮助我:

那么有没有一个地方可以讨论、证明、解释所有警告,或者它们只是来自 pylint 团队的 伟大思想

当我在网络 (google) 搜索栏中输入 pylint warnings 时,第一个搜索结果是 PyLint Messages,然后 link 进入解释每条消息的页面。

回复您的评论:

When I have some warnings I'd like to know a bit more than "too many 'whatever'", "invalid 'something'", etc. If my code work fine I assume these warnings are kind of guide lines and mays be studied with the context. For syntax, I refer on PEP8, but for the other warnings? OK all warning do not have a PEP. Why the max branch is set to 15, statements is set to 50, variables set to 15, etc. ?

这些主要基于 "best practices" - "golden rules",它们主要来自经验,但有时会在任意方面犯一些错误 - 实际上你提到的数字确实是任意的,但你确实这样做了必须在这里设置任意限制,至少在 pylint 增长和 IA 之前。

If python accept to run the code what is the point…?

因为必须维护代码 - 与编写第一个版本相比,您通常会花费更多的时间来维护代码(修复错误、提高性能和添加功能),而且小型、分离良好、简单的函数只做一件事情比起一次做三件不同的事情并用深度嵌套的分支和很多副作用实现的超长函数更容易阅读、理解、推理和测试。

正如我所提到的,您提到的数字确实是任意的,可能适合也可能不适合您代码的给定部分。有些功能本质上很复杂,需要更复杂的代码,您需要有编程经验和足够好的问题知识来评估您的代码质量。

Pylint 只能警告您 可能 代码异味的事情,由您决定代码是否可以改进或者是否正常(然后可能会关闭给定语句或功能或模块等的一些警告)。还有 pylint 无法真正检测到的代码味道 - 就像一个函数做太多不同的事情 - 所以你仍然需要 re-read 你的代码并问问自己是否可以。可测试性在这里是一个很好的指标,如果你不能轻易地对一个函数进行单元测试,那么很可能它做了太多的事情 - 但这里代码的某些部分(例如桥接 UI 和域的代码)根据定义更难单元测试所以在这里你必须使用自己的判断。

好的,谢谢解答。

我喜欢使用 pylint 来帮助我更好地编写代码,我希望 pylint 项目在某处解释和论证警告 对初学者有用的详细信息 像我一样:帮助:

  • 理解为什么考虑这些警告很重要
  • 当某个上下文可以缓和观点时
  • 当它来自 PEP 时
  • 等等

好像不是这样的

无论如何,虽然确实 filled-in/detailed 不够,Pylint messages(我在问我的问题之前发现的)仍然是 最不坏的答案问题。