<p>导入通常按字母顺序排序,并在PEP8旁边的不同位置进行描述。</p>
<p><strong>按字母顺序排序的模块更易于阅读和搜索。毕竟,python是关于可读性的。
此外,更容易验证是否导入了某些内容,并避免重复导入</p>
<p>在PEP8中没有关于排序的内容,所以你要做的就是选择。</p>
<p>根据少数来自知名网站和知识库的参考资料,按字母顺序排序是一种方法。</p>
<p>例如:</p>
<pre><code>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
</code></pre>
<p>或者</p>
<pre><code>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
</code></pre>
<p>Reddit官方存储库还声明,一般来说,应该使用PEP-8导入顺序。不过,也有一些附加条款</p>
<pre><code>for each imported group the order of imports should be:
import <package>.<module> style lines in alphabetical order
from <package>.<module> import <symbol> style in alphabetical order
</code></pre>
<p>参考文献:</p>
<ul>
<li><a href="https://code.google.com/p/soc/wiki/PythonStyleGuide" rel="noreferrer">https://code.google.com/p/soc/wiki/PythonStyleGuide</a></li>
<li><a href="https://github.com/reddit/reddit/wiki/PythonImportGuidelines" rel="noreferrer">https://github.com/reddit/reddit/wiki/PythonImportGuidelines</a></li>
<li><a href="http://docs.openstack.org/developer/hacking/" rel="noreferrer">http://docs.openstack.org/developer/hacking/</a></li>
<li><a href="http://developer.plone.org/reference_manuals/external/plone.api/contribute/conventions.html#grouping-and-sorting" rel="noreferrer">http://developer.plone.org/reference_manuals/external/plone.api/contribute/conventions.html#grouping-and-sorting</a></li>
</ul>
<p>注意:<a href="https://pypi.python.org/pypi/isort/" rel="noreferrer">isort utility</a>自动对导入进行排序。</p>