<p>引用<a href="http://www.python.org/dev/peps/pep-0008/#imports" rel="nofollow">PEP 8 style guide</a>:</p>
<blockquote>
<p>When importing a class from a class-containing module, it's usually okay to spell this:</p>
<pre><code>from myclass import MyClass
from foo.bar.yourclass import YourClass
</code></pre>
<p><em>If this spelling causes local name clashes</em>, then spell them</p>
<pre><code>import myclass
import foo.bar.yourclass
</code></pre>
</blockquote>
<p>强调我的。在</p>
<p>不要使用<code>module1.module2</code>;您依赖的是<code>module1</code>的内部实现细节,这可能会在以后更改它所使用的导入。您可以直接导入<code>module2</code>,除非模块作者另有说明,否则请这样做。在</p>
<p>您可以使用<a href="http://docs.python.org/2/reference/simple_stmts.html#the-import-statement" rel="nofollow">^{<cd4>} convention</a>来限制从带有<code>from modulename import *</code>的模块导入的内容;<code>help()</code>命令也遵循该列表。列出您在<code>__all__</code>中显式导出的名称有助于清理<code>help()</code>文本演示:</p>
<blockquote>
<p>The <em>public names</em> defined by a module are determined by checking the module’s namespace for a variable named <code>__all__</code>; if defined, it must be a sequence of strings which are names defined or imported by that module. The names given in <code>__all__</code> are all considered public and are required to exist. If <code>__all__</code> is not defined, the set of public names includes all names found in the module’s namespace which do not begin with an underscore character (<code>'_'</code>). <code>__all__</code> should contain the entire public API. It is intended to avoid accidentally exporting items that are not part of the API (such as library modules which were imported and used within the module).</p>
</blockquote>