代码之家  ›  专栏  ›  技术社区  ›  jss367

为什么Python标准库模块不遵循基本的PEP8规则?

  •  0
  • jss367  · 技术社区  · 3 年前

    我查看了一些Python模块的源代码,注意到 太多了 PEP8没有被遵循,也没有明显的理由(至少对我来说)不应该被遵循。我完全知道,有时候严格遵守PEP8规则不是最好的选择,但在这些情况下我看不到。这里有一个小例子取自 here in the logging library 他们似乎应该在哪里使用snake_case。

        self.funcName = func
        self.created = ct
        self.msecs = (ct - int(ct)) * 1000
        self.relativeCreated = (self.created - _startTime) * 1000
    

    他们在这个模块中主要使用camelCase,但也有其他例外,如 def _showwarning ,这对我来说也很奇怪。我知道 this question has been asked before ,但我不明白这些答案如何适用于像切换到snake_case这样简单的事情。但是,由于Python广泛流行并且已经存在了很长时间,我想我错过了一些东西。我错过了什么?

    1 回复  |  直到 3 年前
        1
  •  3
  •   Prune    3 年前

    请再读一遍答案:我很清楚要点。

    1. 没有PEP8 规则 .PEP是一套惯例和建议。何时遵循它们以及遵循的紧密程度取决于开发人员。
    2. 许多项目早于PEP8,或者执行得足够接近,以至于这些命名实践没有那么普遍。在某些情况下,当地的专业标准比政治公众人物更有影响力。我曾在多个小组中工作过 仍然 做camelCase标准变量。
    3. 实施的编码标准由实施者决定。Python监督委员会没有进行文本审查。只要供应商的实现符合Python语言标准——这就是功能, 编码风格——解释器是有效的Python。