擅长:python、mysql、java
<p>这里又黑又黑,但你可以试试:</p>
<pre><code> for i in range(100):
locals()['A%i'%i] = i
</code></pre>
<p>但请不要这样做。这通常是很糟糕的练习。在</p>
<p>正如@delnan指出的,它可能在某些python版本和实现上不起作用。<code>locals()</code>是本地命名空间,它是Python实现的一部分。你真的不想玩它。在</p>
<p>你不想这么做的另一个更重要的原因-这是一个安全性和可靠性的噩梦。你看不到所有的变量名是什么,所以你可能会意外地覆盖你的其他变量之一。你从同一个地方得到所有这些“变量”,所以把它们放在字典里是合乎逻辑的。在</p>
<p>我将解释它的工作原理,至少在某些情况下是这样的:本地名称空间通常被实现为字典,<code>locals()</code>有时会返回本地名称空间字典,而不是副本。在</p>
<p>那完全没有道理吗?在</p>
<p>Python变量就像字典中的条目。有一个用于模块的名称空间,一个用于函数的名称空间,一个“全局”名称空间,依此类推。<code>locals()</code>得到最局部的名称空间,<code>globals()</code>得到全局名称空间。在</p>
<p>如果本地名称空间实际上是作为字典实现的,那么您可以通过编辑<code>locals()</code>(深入到python解释器的内部)来编辑它。但是,有时本地命名空间没有作为字典实现(出于性能原因),这发生在函数内部。在这种情况下,<code>locals()</code>将给您一个名称空间的副本,您将无法编辑它(或者至少,它不会更改本地名称空间)。在</p>
<p>还在困惑吗?别这么做。在</p>