<p>2001年在Python邮件列表中详细讨论了这个主题:</p>
<p><a href="https://mail.python.org/pipermail/python-list/2001-July/071567.html" rel="nofollow noreferrer">https://mail.python.org/pipermail/python-list/2001-July/071567.html</a></p>
<p>以下是该主题中讨论的一些原因。从Peter Hansen,这里有三个不让导入全部位于文件顶部的原因:</p>
<blockquote>
<p>Possible reasons to import in a function:</p>
<ol>
<li><p>Readability: if the import is needed in only one
function and that's very unlikely ever to change,
it might be clearer and cleaner to put it there only.</p></li>
<li><p>Startup time: if you don't have the import outside
of the function definitions, it will not execute
when your module is first imported by another, but
only when one of the functions is called. This
delays the overhead of the import (or avoids it
if the functions might never be called).</p></li>
<li><p>There is always one more reason than the ones
we've thought of until now.</p></li>
</ol>
</blockquote>
<p>只是范罗森插嘴说了第四句:</p>
<blockquote>
<ol start="4">
<li>Overhead: if the module imports a lot of modules,
and there's a good chance only a few will actually
be used. This is similar to the "Startup time"
reason, but goes a little further. If a script
using your module only uses a small subset of the
functionality it can save quite some time, especially
if the imports that can be avoided also import a lot
of modules.</li>
</ol>
</blockquote>
<p>第五个建议是,本地进口是避免循环进口问题的一种方法。</p>
<p>请随意阅读这篇文章,以便进行全面的讨论。</p>