擅长:python、mysql、java
<p>你现在遇到的问题只是重述了python处理掩蔽全局变量的局部变量的方法。在</p>
<p>要理解它,<code>import foo</code>是(大约)语法上的甜点:</p>
<pre><code>foo = __import__("foo")
</code></pre>
<p>因此,您的代码是:</p>
^{pr2}$
<p>由于名称<code>logging</code>出现在bar</em>内赋值语句的左侧,因此它被视为局部变量引用,因此python不会在该范围内寻找同名的全局变量,即使设置它的行永远不能被调用。在</p>
<p>处理全局变量的常用方法是:使用其他名称,如您所发现的,或者:</p>
<pre><code>def bar():
global logging
logging.info('bar')
if False:
import logging.handlers
</code></pre>
<p>这样python就不会认为<code>logging</code>是本地的。在</p>