擅长:python、mysql、java
<p>你可以试试:</p>
<pre><code>class Whatevs(object):
foo = 3
zap = [foo] * 10
</code></pre>
<p>甚至:</p>
<pre><code>class Whatevs(object):
foo = 3
zap = [foo for _ in range(10)]
</code></pre>
<p>原因是Python中的类有自己的名称空间。引入此命名空间的作用域无权访问此命名空间,因此,从生成器表达式的作用域中,无法访问<code>Whatevs</code>命名空间内的变量。你知道吗</p>
<p>我的列表理解没有引入一个新的作用域——至少在Python2.x中是这样。在Python3.x中,这个作用域已经改变了,所以我的选项2也不起作用。你知道吗</p>