Programing

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

lottogame 2020. 8. 14. 08:11
반응형

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


중복 가능성 :
할당
전에 참조 된 로컬 변수 Python 3 : UnboundLocalError : 할당 전에 참조 된 로컬 변수

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

다음과 같은 오류가 발생합니다.

UnboundLocalError : 할당 전에 참조 된 지역 변수 'test1'.

오류는 그것이 'test1'지역 변수 라고 말하지만 이 변수는 전역이라고 생각했습니다.

그래서 그것은 글로벌 또는 로컬이며 글로벌 test1을 인수로 전달하지 않고이 오류를 해결하는 방법 testFunc무엇입니까?


test1함수 내 에서 수정 하려면 test1전역 변수로 정의해야합니다 . 예를 들면 다음과 같습니다.

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

그러나 전역 변수 만 읽어야하는 경우 다음 global과 같이 키워드를 사용하지 않고 인쇄 할 수 있습니다 .

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

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


최상의 솔루션 : globals를 사용하지 마십시오.

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

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

test1이 전역임을 지정해야합니다.

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

참고 URL : https://stackoverflow.com/questions/11904981/local-variable-referenced-before-assignment

반응형