python style guide建议对导入进行如下分组:
导入应按以下顺序分组:
imports
但是,它没有提到应该如何布局这两种不同的导入方式:
from foo import bar
import foo
有多种方法可以对它们进行排序(假设所有这些导入都属于同一组):
from..import
,然后是import
从g导入gg从x导入xx导入abc导入def导入x
import
,然后from..import
import abc import def import x from g import gg from x import xx
导入abc导入定义从g导入gg导入x从xx导入xx导入xx
PEP8没有提到这一点的首选顺序和“清理导入”功能,一些IDE可能只是做了该功能的开发人员喜欢的任何事情。
我正在寻找另一个澄清这一点的PEP,或者来自 (或其他核心开发人员)的相关评论/电子邮件。请不要张贴主观的答案来说明你自己的偏好。
发布于 2013-12-24 23:48:50
除PEP 8外,进口通常按字母顺序排序,并在不同的地方进行描述。
按字母顺序排序的模块读取和搜索的速度更快。毕竟,Python就是关于可读性的。此外,更容易验证是否导入了某些内容,并避免了重复导入。
PEP 8中没有任何关于排序的内容。所以这一切都是关于选择你所使用的。
根据来自有声誉的网站和存储库的一些参考资料,也很受欢迎,字母顺序是方法。
例如,像这样:
import httplib
import logging
import random
import StringIO
import time
import unittest
from nova.api import openstack
from nova.auth import users
from nova.endpoint import cloud
或
import a_standard
import b_standard
import a_third_party
import b_third_party
from a_soc import f
from a_soc import g
from b_soc import d
Reddit官方存储库还指出,通常应该使用PEP-8导入顺序。但是,对于每个导入的组,有几个附加内容应该是导入的顺序:
import <package>.<module> style lines in alphabetical order
from <package>.<module> import <symbol> style in alphabetical order
参考文献:
PS:isort utility会自动对您的导入内容进行排序。
发布于 2017-03-10 01:11:09
根据中情局的内部编码约定(WikiLeaks Vault 7 leak的一部分),python导入应该分为三组:
imports
导入应在这些组中按字典顺序排序,忽略大小写:
import foo
from foo import bar
from foo.bar import baz
from foo.bar import Quux
from Foob import ar
发布于 2013-12-24 23:01:11
PEP8实际上对此只字不提。在这一点上没有约定,这并不意味着Python社区需要绝对定义一个约定。一个选择对一个项目来说可能是更好的,但对另一个项目来说可能是最坏的。这是一个偏好的问题,因为每种解决方案都有优缺点。但如果你想遵循惯例,你必须遵守你引用的主要顺序:
imports
例如,导入的Google recommend in this page应该按字典顺序在每个类别(标准/第三方/您的类别)中排序。但在Facebook,Yahoo和其他地方,这可能是另一种惯例...
https://stackoverflow.com/questions/20762662
复制相似问题