9

根据PEP 8

进口应按以下顺序分组:

  1. 标准库导入
  2. 相关第三方进口
  3. 本地应用程序/库特定导入

您应该在每组导入之间放置一个空行。

但它没有提到__future__进口。导入应该__future__与标准库导入组合在一起还是与标准库导入分开。

所以,哪个更优选:

from __future__ import absolute_import
import sys
import os.path

from .submod import xyz

或者:

from __future__ import absolute_import

import sys
import os.path

from .submod import xyz
4

1 回答 1

12

我个人将它们分开。导入不仅像__future__其他导入一样绑定名称,它还改变了语言的含义。有了模块之类的东西from __future__ import division,无论有没有导入,它都可能运行良好,但是如果我想了解更多关于它们来自哪里的信息,那么在没有什么告诉我去查看导入的名称的地方会给出不同的(错误的)结果。__future__进口商品应尽可能突出。

另外,我通常按字母顺序对组内的导入进行排序(没有特别好的理由这样做;我只是发现它对差异和合并分支有一些非常小的好处),并且__future__导入必须放在第一位,所以我将它们放在自己的组中.

于 2012-05-18T08:26:07.130 回答