【问题标题】:Python blank line convention among import statements导入语句之间的 Python 空行约定
【发布时间】:2019-10-06 04:37:54
【问题描述】:

当我突然对 import 语句的空白行约定感到好奇时,我正在用 Python 编写一些代码。

我也知道typical import statement conventions specified in the PEP 8 style guideblank lines。但是,我很好奇 import 语句中的空行是否有约定或不成文的规则。

例如,我通常喜欢在 PEP 8 中指定的三个类别(即标准库导入、相关第三方导入、本地应用程序/库特定导入)之间添加一个空行,但我也注意到许多人往往不这样做。每当我输入一个空行时,我的 PyLint 应用程序甚至会抛出一个警告。

我个人觉得这增加了每个导入库属于什么“类别”的清晰度。我应该遵循某种约定吗?

提前致谢。

【问题讨论】:

    标签: python


    【解决方案1】:

    在导入之间使用注释行代替空行,指定它们属于什么类别... 它带来了更多的清晰度,不会引发任何警告或错误

    【讨论】:

    • 这可能不是任何地方的书面规则,但在我看来这是一个足够好的主意:)
    • ...并且您的编辑器可以在您创建新的.py 文件时插入模板
    • 这些部分已经有很强的约定,因此无需添加显式 cmets。
    【解决方案2】:

    是的。惯例是将各部分分开。 http://github.com/timothycrosley/isort 可以帮忙。

    这些部分可能如下所示。

    from __future__ import absolute_import
    
    import os
    import sys
    
    from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,
                             lib9, lib10, lib11, lib12, lib13, lib14, lib15)
    
    from my_lib import Object, Object2, Object3
    

    另外,另一个流行但不是通用的约定是只导入模块,而不是类或函数,正如 Google Python Style Guide 中所建议的那样。

    from __future__ import absolute_import
    
    import os
    import sys
    
    import third_party.module1
    import third_party.module2
    
    import my_lib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2023-02-15
      • 2023-02-07
      • 2017-08-28
      • 1970-01-01
      • 2021-10-28
      • 2022-10-13
      相关资源
      最近更新 更多