이 글은 Python3의 비로컬과 글로벌의 사용법과 차이점을 소개합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
키워드 nonlocal
Python 2.x에서 클로저는 외부 함수의 변수를 읽을 수만 있고 덮어쓸 수는 없습니다. 이 문제를 해결하기 위해 Python 3.x에서는 클로저 내에서 nonlocal로 변수를 선언하면 인터프리터가 외부 함수에서 변수 이름을 찾을 수 있습니다.
참고: nonlocal: 키워드는 python3에 나타납니다. 전역 범위는 현재 코드가 위치한 모듈의 범위를 나타내고, 로컬 범위는 현재 함수나 메서드의 범위를 나타냅니다. 로컬 범위의 코드는 외부 범위(전역 범위 포함)의 변수를 읽을 수 있지만 변경할 수는 없습니다. 변경하려면 여기에서 global 키워드를 사용해야 합니다
두 가지 예를 살펴보세요
예제 1name = 'pythontab' def func() global name name = 'pythontab.com' func() print(name)
pythontab.com
예제 2
def func(): name = 'pythontab' def foo(): nonlocal name name = 'pythontab.com' foo() print(name) func()
pythontab.com
예제 2에서는 전역 키워드가 name 값을 변경하는 데 사용되지 않습니다.
둘의 기능은 다릅니다. global 키워드로 변수를 수정하면 전역변수로 표시됩니다. 변수를 수정하면 전역변수로 수정됩니다. nonlocal 키워드로 수정하면 상위 함수에서 지역변수로 표시됩니다. 상위 함수에 지역 변수가 없으면 이 지역 변수가 있으면 비지역 위치에서 오류가 발생합니다. (비지역 수정 변수를 사용하는 최상위 함수는 반드시 오류를 보고합니다.)
위 내용은 Python3의 비로컬과 글로벌의 사용법과 차이점 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!