根据PEP 8:
进口应按以下顺序分组:
- 标准库导入
- 相关的第三方导入
- 本地应用程序/库特定导入
醇>您应该在每组导入之间添加一个空行。
但它没有提及__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
答案 0 :(得分:10)
我亲自将它们分开。 __future__
导入不只是像其他导入一样绑定名称,它会改变语言的含义。对于像from __future__ import division
这样的东西,无论有没有导入,模块都可能正常运行,但是如果我想了解更多关于它们的位置,那么在没有任何东西告诉我去查看导入名称的地方给出不同的(错误的)结果来自。 __future__
导入应该尽可能突出。
另外,我通常按字母顺序对组内的导入进行排序(没有特别好的理由这样做;我发现它对差异和合并分支有一些非常小的好处),__future__
导入必须是第一个,所以我把它们放在自己的小组中。