如果在一个循环中,是否有可能在循环的后续迭代中实例化要处理的对象,并且在循环的作用域已经保留时仍然可用?忘记声明变量
这里是什么,我认为可能运行的一个简单例子:
>>> for i in range(2):
... r = [] if r is None else r
... r.append[i]
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'r' is not defined
这是我的使用NameError异常第二次尝试:
>>> for i in range(2):
... try:
... r = r
... except NameError:
... r = []
... r.append(i)
...
>>>
我怀疑什么,我一直在努力这样做实际上是禁止的,但我不明白为什么会这样。
请问有人可以为我提供一些照明吗?
编辑:
所以第二个方式工作,但它是非常长篇大论。有没有快速的方法?
我认识到它打败了问题的重点,但是你当然可以在循环之前实例化它? – Ben 2012-08-10 20:08:52
在你希望得到的循环之前简单定义'r = []'有什么好处? – DSM 2012-08-10 20:16:10
@Ben和DSM,部分是第一次尝试工作的满足感!但也不必中止代码输入,因为我忘记了定义。另外,我通常只是看看是否有用,而我似乎因为它而重新打字。 – jon 2012-08-10 20:22:11