'for' 루프에 대한 Python의 범위 지정 규칙은 일반적으로 이해되지만 그 뒤에 숨겨진 추론은 여전히 신비. 이 문서에서는 현재 범위 지정 동작을 초래한 디자인 결정의 근거를 조사합니다.
다음 Python 코드를 고려하세요.
for foo in xrange(10): bar = 2 print(foo, bar)
이 코드가 실행되면 (9, 2가 인쇄됩니다. ). 'foo'는 루프 반복을 제어하는 데만 사용되고 'bar'는 루프 내에서 정의되기 때문에 이 동작은 놀랍습니다. 논리적으로 'bar'가 루프 외부에서 액세스 가능하고 루프 제어 변수 'foo'가 루프 종료 후 범위 내에 남아 있는 것은 불필요해 보입니다.
이 디자인 선택에 대한 가장 그럴듯한 설명은 단순성입니다. . 범위 지정 규칙을 간단하게 유지함으로써 Python은 명확하고 간결한 문법을 유지합니다. 이 결정은 채택을 방해하지 않았으며 이 기능은 커뮤니티에서 널리 수용되었습니다. 루프 구성 내에서 변수를 할당하는 데에는 명시적인 범위 명확성이 필요하지 않습니다. 추가적으로, global 키워드는 전역 범위에 변수를 할당하는 수단을 제공합니다.
Python의 범위 지정 규칙에 대한 철저한 토론은 Python Ideas 메일링 목록에서 찾을 수 있습니다. 주목할만한 주장 중 하나는 기존 코드가 루프를 종료한 후 값을 유지하는 루프 변수에 의존하는 경우가 많다는 것인데, 이는 바람직한 기능으로 간주됩니다.
결론적으로 'for' 루프의 범위 지정에 대한 Python의 디자인 철학은 단순성을 우선시합니다. 명확하고 간결한 구문을 유지하는 것이 목표입니다. 이 접근 방식은 복잡한 전역 네임스페이스 및 오류 추적과 관련된 몇 가지 잠재적인 단점에도 불구하고 Python 커뮤니티에서 인기가 있는 것으로 입증되었습니다.
위 내용은 Python의 `for` 루프가 범위 내에 루프 변수를 남겨두는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!