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 중국어 웹사이트의 기타 관련 기사를 참조하세요!