<h2>非推荐方法#1</h2>
<p>使用<code>globals()</code></p>
<pre><code>>>> b = 'sometext'
>>> globals()[b + 'a'] = 123
>>> sometexta
123
</code></pre>
<p><code>globals()</code>函数返回全局命名空间中所有可用变量的字典。如果希望在函数中执行相同的操作,可以使用<code>locals()</code>执行相同的操作</p>
<p>请注意,如果您不知道这些变量在运行时可能有什么名称,那么甚至无法访问它们</p>
<hr/>
<h2>非推荐方法#2</h2>
<p>您可以使用<a href="https://docs.python.org/3/library/functions.html#exec" rel="nofollow noreferrer">^{<cd4>}</a>内置函数:</p>
<pre><code>>>> b = 'sometext'
>>> exec("%sa = 123" %b)
>>> sometexta
123
</code></pre>
<p>如果您想访问这个变量,您需要再次使用<code>exec</code>,因为您使用的是名为variables的变量</p>
<p><code>exec</code>及其姊妹函数<code>eval</code>将执行传递给它的任何有效python代码。请记住,永远不要让<em>任何</em>用户输入由他们执行,因为这将构成严重的安全威胁</p>
<hr/>
<h2>推荐的方法</h2>
<p>使用<code>dict</code>存储“变量”名称变量。只有当你知道你在做什么的时候才使用前两种方法。在所有其他情况下,字典是最安全的途径:</p>
<pre><code>>>> b = 'sometext'
>>> variables = {}
>>> variables[b + 'a'] = 123
>>> variables[b + 'a']
123
>>> variables['sometexta'] # is the same thing as the above
123
</code></pre>
<p>使用前两种方法,创建变量非常简单。但是,如果不知道它们是如何创建的,那么在运行时访问它们可能是一件痛苦的事情</p>