如果在循环内,是否可以在循环的后续迭代期间实例化要操作的对象,并且在离开循环范围时仍然可用?
这是我认为可能有效的一个简单示例:
>>> 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)
...
>>>
我怀疑我一直试图做的事情实际上是被禁止的,但我不明白为什么会这样。
有人可以帮我解释一下吗?
编辑:
所以第二种方法有效,但它很冗长。有没有快速的方法?