source

할당 전에 참조된 로컬(?) 변수

lovecheck 2023. 6. 1. 22:49
반응형

할당 전에 참조된 로컬(?) 변수

test1 = 0
def test_func():
    test1 += 1
test_func()

다음 오류가 발생했습니다.

UnboundLocalError: 로컬 변수 'test1'이(가) 할당 전에 참조되었습니다.

오류가 발생했습니다.'test1'로컬 변수이지만 저는 이 변수가 글로벌 변수라고 생각했습니다.

그렇다면 글로벌 또는 로컬이며 글로벌을 통과하지 않고 이 오류를 해결하는 방법은 무엇입니까?test1의 주장으로서test_func?

당신이 수정하기 위해test1함수 내부에서 정의해야 합니다.test1글로벌 변수로, 예:

test1 = 0
def test_func():
    global test1 
    test1 += 1
test_func()

그러나 글로벌 변수를 읽기만 하면 되는 경우 키워드를 사용하지 않고 인쇄할 수 있습니다.global이와 같이:

test1 = 0
def test_func():
    print(test1)
test_func()

그러나 글로벌 변수를 수정해야 할 때마다 키워드를 사용해야 합니다.global.

최상의 솔루션:사용 안 함globals

>>> test1 = 0
>>> def test_func(x):
        return x + 1

>>> test1 = test_func(test1)
>>> test1
1

test1이 글로벌인지 지정해야 합니다.

test1 = 0
def test_func():
    global test1
    test1 += 1
test_func()

언급URL : https://stackoverflow.com/questions/11904981/local-variable-referenced-before-assignment

반응형