> 백엔드 개발 > 파이썬 튜토리얼 > 함수 내의 전역 변수에 액세스할 때 Python 코드에서 'UnboundLocalError'가 발생하는 이유는 무엇입니까?

함수 내의 전역 변수에 액세스할 때 Python 코드에서 'UnboundLocalError'가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-23 03:35:14
원래의
797명이 탐색했습니다.

Why Does My Python Code Throw an

Unbound Local Error: Local Variable 'c' Shadowing Global Scope

Python에서는 함수 내 변수 할당 규칙을 이해하는 것이 중요합니다. 잠재적인 오류를 방지합니다. "UnboundLocalError"가 발생하면 함수에 할당된 변수가 전역 변수를 가리려고 시도하는지 조사하는 것이 중요합니다.

다음 코드를 고려하세요.

a, b, c = (1, 2, 3)

def test():
    print(a)
    print(b)
    print(c)
    c += 1
로그인 후 복사

이 코드를 실행할 때 , "print(c)" 줄에서 발생하는 오류가 발생합니다. 오류 메시지는 일반적으로 test() 함수의 로컬 범위 내에 할당된 "c" 변수가 없음을 나타냅니다.

이 오류를 해결하려면 Python이 함수의 변수를 위치에 따라 다르게 처리한다는 점을 이해해야 합니다. 그들은 할당되었습니다. 함수 내의 변수에 값을 할당하려고 하면 지역 변수가 됩니다. 그러나 이 코드에서는 "c"를 전역 변수로 유지하려고 합니다.

test() 함수 내의 "c" 변수가 전역 변수 "c"를 참조하도록 선언하려면 " 함수 시작 부분에 global" 키워드:

def test():
    global c
    print(a)
    print(b)
    print(c)
    c += 1
로그인 후 복사

"global c"를 추가하면 Python은 로컬 변수가 아닌 전역 "c" 변수로 작업하려는 의도를 인식합니다. 이를 통해 전역 "c" 변수를 예상대로 인쇄하고 수정할 수 있습니다.

Python 3에 도입된 새로운 기능으로 "전역 c" 대신 "nonlocal c"를 사용하여 가장 가까운 엔클로저를 참조할 수 있습니다. "c" 변수를 소유하는 함수 범위. 그러나 일상적인 Python 코딩에서는 "비로컬"을 사용하는 것이 일반적으로 덜 일반적이라는 점은 주목할 가치가 있습니다.

위 내용은 함수 내의 전역 변수에 액세스할 때 Python 코드에서 'UnboundLocalError'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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