루프 내부에있는 경우 루프의 후속 반복 중에 조작 할 개체를 인스턴스화하고 루프의 범위가 남아있을 때 사용할 수 있습니까? 여기 변수 선언을 잊어 버림
내가 작동 할 수 무슨 생각의 간단한 예입니다 :>>> 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)
...
>>>
내가 무슨 노력 해왔다 의심을 do는 실제로 금지되어 있지만, 왜 그렇게 될지 이해하지 못합니다.
누군가 나를 위해 약간의 빛을 던질 수 있습니까?
편집 :
그래서 두 번째 방법은 작동하지만, 그것은 매우 긴 호흡입니다. 빠른 방법이 있습니까?
나는 그것이 질문의 요점을 무너 뜨린다는 것을 알고 있지만 물론 루프 전에 그것을 인스턴스화 할 수 있습니까? – Ben
루프를 만들기 전에'r = []'을 정의하는 것보다 어떤 이점이 있습니까? – DSM
@Ben과 DSM은 부분적으로 첫 번째 시도에서 작동하는 것에 만족합니다! 또한 정의를 잊어 버리기 때문에 코드 입력을 중단하지 않아도됩니다. 또한, 나는 보통 무언가가 작동하는지 만보고 있으며, 나는 그것 때문에 많은 것을 다시 타이핑하는 것처럼 보입니다. – jon