擅长:python、mysql、java
<p>您可以有一个默认字典,它将在您需要时为键创建一个新值。然后应该使用字典中的值,而不是作为独立变量。变量名应该在程序中进行硬编码-如果名称或数量不同,则应该使用字典并通过键访问值,而键本来就是动态的:</p>
<pre><code>>>> from collections import defaultdict
>>> data = defaultdict(lambda: None)
>>> data["foo"], data["bar"]
>>> data.keys()
dict_keys(['foo', 'bar'])
>>>[data[key] for key in "foo bar baz fnord blip blargh".split()]
>>> data.keys()
dict_keys(['fnord', 'bar', 'foo', 'blargh', 'baz', 'blip'])
</code></pre>
<p>如果你真的需要更新变量,你可以很容易地得到全局变量:</p>
<pre><code>>>> globals().update(data)
>>> bar
>>> fnord is None
True
</code></pre>
<p>这不适用于局部变量-要更新这些变量,必须从pip安装<code>extradict</code>,并使用它的MapGetter上下文管理器。(<a href="https://github.com/jsbueno/extradict" rel="nofollow">https://github.com/jsbueno/extradict</a>)。你知道吗</p>
<pre><code>$ pip install extradict
$ python
...
>>> from extradict import MapGetter
>>> with MapGetter(default="1Value4All") as tmp:
... from tmp import foo, bar, baz, qaxx, spat
...
>>> foo
'1Value4All'
</code></pre>