Python 2.x에서 로컬이 아닌 변수에 어떻게 액세스할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-10-22 08:37:03
원래의
244명이 탐색했습니다.

How Can I Access Nonlocal Variables in Python 2.x?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿