Python에서 할당 전에 참조되는 로컬 변수

Muhammad Waiz Khan 2021년6월22일
Python에서 할당 전에 참조되는 로컬 변수

이 자습서에서는local variable referenced before assignment오류가 발생하는 이유와 해결 방법을 설명합니다.

local variable referenced before assignment는 함수 본문 내에서 할당 전에 일부 변수가 참조 될 때 발생합니다. 이 오류는 일반적으로 코드가 전역 변수에 액세스하려고 할 때 발생합니다. 전역 변수는 전역 범위를 가지며 프로그램 내의 어느 곳에서나 액세스 할 수 있으므로 일반적으로 사용자는 함수 내에서 전역 변수를 사용하려고합니다.

파이썬에서는 변수를 사용하기 전에 선언하거나 초기화 할 필요가 없습니다. 변수는 기본적으로 항상 로컬로 간주됩니다. 따라서 프로그램이 전역 변수를 지정하지 않고 함수 내의 전역 변수에 액세스하려고하면 참조되는 변수가 지역 변수로 간주되므로 코드는할당 전에 참조 된 지역 변수오류를 반환합니다.

파이썬에서local variable referenced before assignment오류의 해결책

Python에서global키워드를 사용하여 변수를 전역으로 선언 할 수 있습니다. 변수가 전역으로 선언되면 프로그램은 함수 내에서 변수에 액세스 할 수 있으며 오류가 발생하지 않습니다.

아래 예제 코드는 프로그램이 “할당 전에 참조 된 로컬 변수"오류로 끝나는 코드 시나리오를 보여줍니다.

count = 10


def myfunc():
    count = count + 1
    print(count)


myfunc()

출력:

UnboundLocalError: local variable 'count' referenced before assignment

이 오류를 해결하려면global키워드를 사용하여count변수를 전역으로 선언해야합니다. 아래 예제 코드는 위 코드 시나리오에서global키워드를 사용하여 오류를 해결하는 방법을 보여줍니다.

count = 10


def myfunc():
    global count
    count = count + 1
    print(count)


myfunc()

출력:

11