Python 범위 사용 사례 분석에 대한 자세한 설명

高洛峰
풀어 주다: 2017-03-07 15:53:58
원래의
1189명이 탐색했습니다.

이 글은 예제를 통해 Python 범위의 사용법을 분석합니다. 다음과 같이 참조할 수 있도록 모든 사람과 공유하세요.

모든 프로그래밍 언어에는 변수 범위 개념이 있으며 Python도 예외는 아닙니다. 다음은 Python 범위에 대한 코드 데모입니다. 🎜>

def scope_test():
  def do_local():
    spam = "local spam"
  def do_nonlocal():
    nonlocal spam
    spam = "nonlocal spam"
  def do_global():
    global spam
    spam = "global spam"
  spam = "test spam"
  do_local()
  print("After local assignment:", spam)
  do_nonlocal()
  print("After nonlocal assignment:", spam)
  do_global()
  print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)
로그인 후 복사

프로그램 출력:

After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam
로그인 후 복사

참고: 로컬 할당 문은 스팸으로 처리할 수 없습니다. scope_test 바인딩을 변경합니다. nonlocal 할당문은scope_test의 스팸 바인딩을 변경하고, 전역 할당문은 모듈 수준에서 스팸 바인딩을 변경합니다.

그 중 nonlocal은 Python 3의 새로운 키워드입니다.

또한 전역 할당문 앞에 스팸이 미리 바인딩되어 있지 않은 것을 확인할 수 있습니다.

요약:

프로그램에서 전역 변수에 액세스하는 상황이 발생하여 전역 변수의 값을 수정하려는 경우 다음을 사용할 수 있습니다. 함수에서 이 변수를 선언합니다 전역 변수입니다

nonlocal 키워드는 함수나 다른 범위에서 외부(비 전역) 변수를 사용하는 데 사용됩니다.

global 키워드는 이해하기 쉽고, 다른 언어에서도 일반적으로 마찬가지입니다. 다음은 로컬이 아닌 또 다른 예입니다.

def make_counter():
  count = 0
  def counter():
    nonlocal count
    count += 1
    return count
  return counter
def make_counter_test():
 mc = make_counter()
 print(mc())
 print(mc())
 print(mc())
로그인 후 복사

실행 결과:

1
2
3
로그인 후 복사

자세히 알아보기 Python 범위 사용 예 및 관련 기사에 대한 자세한 설명은 PHP 중국어 웹 사이트를 주목하십시오!

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