> 백엔드 개발 > 파이썬 튜토리얼 > Python 비로컬 및 전역 키워드 구문 분석 지침

Python 비로컬 및 전역 키워드 구문 분석 지침

高洛峰
풀어 주다: 2017-03-12 10:49:22
원래의
2345명이 탐색했습니다.

nonlocal

우선 클로저 내부에 nonlocal 키워드가 정의되어 있다는 점을 분명히 해야 합니다. 다음 코드를 살펴보세요.

x = 0
def outer():
    x = 1
    def inner():
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
로그인 후 복사

Result

# inner: 2
# outer: 1
# global: 0
로그인 후 복사

이제 클로저에 nonlocal 키워드를 추가하여 선언합니다.

x = 0
def outer():
    x = 1
    def inner():
        nonlocal x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
로그인 후 복사

Result

# inner: 2
# outer: 2
# global: 0
로그인 후 복사

차이점이 보이나요? 이는 내부에 함수가 중첩된 함수 입니다. nonlocal을 사용하면 변수 가 중첩 함수 inner()뿐만 아니라 전체 대형 함수에서도 유효하다고 선언됩니다.

global

여전히 동일합니다. 예를 살펴보겠습니다.

x = 0
def outer():
    x = 1
    def inner():
        global x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)
로그인 후 복사
Result

# inner: 2
# outer: 1
# global: 2
로그인 후 복사
global은 다음의 변수를 기반으로 합니다. 전체 환경은 함수 클래스의 변수 대신 함수 클래스의 변수에 따라 작동합니다.

위 내용은 Python 비로컬 및 전역 키워드 구문 분석 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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