首页 > 解决方案 > 导入语句之间的 Python 空行约定

问题描述

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

我知道PEP 8 样式指南和空行中指定的典型导入语句约定。但是,我很好奇 import 语句中的空行是否有约定或不成文的规则。

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

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

提前致谢。

标签: python

解决方案


是的。惯例是将各部分分开。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

推荐阅读