擅长:python、mysql、java
<p>我和Kevin或Dan D一样不喜欢使用eval,但要回答您的问题,您可以使用:</p>
<pre><code>yi = eval( "self.y{0}".format(i) )
yi[name] = value;
</code></pre>
<p>函数的作用是:对表达式求值,但赋值为=、+=等的表达式在Python中不是表达式。这是一个声明。因此,我使用eval()go将dict引用获取到局部变量(y)中,并使用该引用设置它引用的dict的成员。你知道吗</p>
<p>您还可以将这两个语句粘在一起并消除yi局部变量:</p>
<pre><code>eval("self.y{0}".format(i))[name] = value;
</code></pre>
<p>然而,正如其他人所说,这并不是最好的方法。一份词典、一份单子甚至一组字典都能更好地完成这项工作。(参见Alex Martelli的例子。)</p>