PEP 8:如何对__future__进口进行分组?

时间:2012-05-18 08:19:32

标签: python coding-style python-import pep8

根据PEP 8

  

进口应按以下顺序分组:

     
      
  1. 标准库导入
  2.   
  3. 相关的第三方导入
  4.   
  5. 本地应用程序/库特定导入
  6.         

    您应该在每组导入之间添加一个空行。

但它没有提及__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

1 个答案:

答案 0 :(得分:10)

我亲自将它们分开。 __future__导入不只是像其他导入一样绑定名称,它会改变语言的含义。对于像from __future__ import division这样的东西,无论有没有导入,模块都可能正常运行,但是如果我想了解更多关于它们的位置,那么在没有任何东西告诉我去查看导入名称的地方给出不同的(错误的)结果来自。 __future__导入应该尽可能突出。

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