<p>如果这管用的话</p>
<pre><code>x=5
def main():
for globe in locals():
globals().update(locals()[globe])
print x
main()
</code></pre>
<p>那为什么不呢?你知道吗</p>
<pre><code>x=5
def main():
for globe in locals():
globals().update(locals()[globe])
x+=1
print x
main()
</code></pre>
<p>后一个语句中的错误声明x在赋值之前被引用,但是它在第一个示例中起作用。。。你知道吗</p>
<p>在python中,当您指定一个变量时,声明会自动发生。
因此,当您将值赋给函数内的<code>x</code>时,python认为这是一个新的局部变量,隐藏了全局<code>x</code>。你知道吗</p>
<p>如果要为全局<code>x</code>赋值,可以执行以下操作:</p>
<pre><code>x=5
def main():
global x
x += 1
print x
main()
</code></pre>