Python 2.x의 nonlocal 키워드 이해
Python 3.0 이전 버전에서는 nonlocal 키워드를 사용할 수 없습니다. 그러나 이것이 클로저 내의 비지역 변수에 액세스할 수 없다는 의미는 아닙니다.
비지역 변수 읽기
Python 2.x에서 내부 함수는 여전히 비지역 변수를 읽을 수 있습니다. 변수이지만 다시 바인딩할 수는 없습니다. 즉, 변수 값에 액세스할 수 있지만 변경할 수는 없습니다.
제한 사항 해결
이 제한 사항을 극복하려면 사전을 사용하여 해결 방법을 사용할 수 있습니다. 로컬이 아닌 데이터를 사전에 저장하면 내부 함수가 다시 바인딩하지 않고도 데이터가 참조하는 개체를 조작할 수 있습니다.
예를 들어 Wikipedia의 예를 생각해 보세요.
<code class="python">def outer(): d = {'y': 0} def inner(): d['y'] += 1 return d['y'] return inner f = outer() print(f(), f(), f()) # Prints 1 2 3</code>
이 예에서는 , 내부 함수는 'd' 사전에 저장된 'y' 변수에 액세스할 수 있습니다. 'y' 변수 자체는 수정할 수 없지만 내부 함수 내에서 해당 값을 증가시킬 수 있습니다.
위 내용은 Python 2.x에서 로컬이 아닌 변수에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!