<p>当我调用函数时,我希望能够在函数中定义动态变量名,比如。。。在</p>
<pre><code>def build_ports(portlist):
for idx, portname in enumerate(portlist):
chassis, slot, port = portname.split('/')
vartxt = "p%i" % idx
locals()[vartxt] = Port() # Class defining a port object
locals()[vartxt].port_method1(chassis, slot, port)
if idx > 5:
locals()[vartxt].port_method2() # Only call this object method, if idx > 5
</code></pre>
<p>但是我们都知道<code>locals()</code>是只读的,不像{<cd2>}。。。所以当解释器看到<code>locals()[vartxt]</code>时,它就会呕吐。。。在</p>
<p>有没有任何方法可以在不污染全局命名空间的情况下在方法中定义动态变量(或者更糟的是,在方法中使用全局变量,而在该方法中从未定义过它)?在</p>