nonlocal

SSamYang·2024년 11월 14일

Python에서 nonlocal 키워드는 중첩 함수(nested function)에서 외부 함수의 변수를 참조하고 수정할 때 사용됩니다. 주요 특징과 사용법은 다음과 같습니다:

  1. 용도:

    • 내부 함수에서 외부 함수의 변수를 수정할 때 사용합니다.
    • 가장 가까운 외부 스코프의 변수를 참조합니다 (전역 스코프 제외).
  2. 사용 방법:

    pythondef outer_function():
        x = 10
        def inner_function():
            nonlocal x
            x += 1
            print(x)
        inner_function()
        print(x)
    
    outer_function()
    *# 출력: 11#      11*
  3. 주요 특징:

    • nonlocal은 중첩 함수 내에서만 사용할 수 있습니다.
    • 전역 변수에는 적용되지 않습니다 (전역 변수는 global 키워드 사용).
    • 가장 가까운 외부 스코프의 변수를 찾아 참조합니다.
  4. 주의사항:

    • nonlocal로 선언된 변수는 외부 함수에 반드시 존재해야 합니다.
    • 과도한 사용은 코드의 가독성을 떨어뜨릴 수 있습니다.
  5. 활용:

    • 클로저(closure) 구현에 유용합니다.
    • 상태를 유지해야 하는 내부 함수를 만들 때 사용됩니다.

nonlocal은 Python의 스코프 규칙을 더 유연하게 만들어주며, 특히 함수형 프로그래밍 패턴을 구현할 때 유용합니다. 하지만 코드의 복잡성을 증가시킬 수 있으므로 신중하게 사용해야 합니다.

profile
공부 기록장📕

0개의 댓글